Initialize 49/45349/1
authorSandeep Kumar Polu <polu.sandeep@samsung.com>
Wed, 5 Aug 2015 05:41:30 +0000 (14:41 +0900)
committerSandeep Kumar Polu <polu.sandeep@samsung.com>
Wed, 5 Aug 2015 05:43:04 +0000 (14:43 +0900)
Change-Id: I330d68b67b705a4f030cfb7e3347e76aa98ce9eb

215 files changed:
TelegramTizen/.cproject [new file with mode: 0644]
TelegramTizen/.exportMap [new file with mode: 0644]
TelegramTizen/.project [new file with mode: 0644]
TelegramTizen/.rds_delta [new file with mode: 0644]
TelegramTizen/.sdk_delta.info [new file with mode: 0644]
TelegramTizen/.sign/.manifest.tmp [new file with mode: 0644]
TelegramTizen/.sign/author-signature.xml [new file with mode: 0644]
TelegramTizen/.sign/signature1.xml [new file with mode: 0644]
TelegramTizen/.tproject [new file with mode: 0644]
TelegramTizen/Debug/.gdbcommand [new file with mode: 0644]
TelegramTizen/Debug/.gdbinit [new file with mode: 0644]
TelegramTizen/Debug/.ninja_deps [new file with mode: 0644]
TelegramTizen/Debug/.ninja_log [new file with mode: 0644]
TelegramTizen/Debug/build.ninja [new file with mode: 0644]
TelegramTizen/Debug/compile_commands.json [new file with mode: 0644]
TelegramTizen/Debug/contacts_utils/build.ninja [new file with mode: 0644]
TelegramTizen/Debug/contacts_utils/contacts-db-utils.o [new file with mode: 0644]
TelegramTizen/Debug/contacts_utils/contacts-list-utils.o [new file with mode: 0644]
TelegramTizen/Debug/contacts_utils/contacts-record-utils.o [new file with mode: 0644]
TelegramTizen/Debug/db_manager/build.ninja [new file with mode: 0644]
TelegramTizen/Debug/db_manager/tg_db_manager.o [new file with mode: 0644]
TelegramTizen/Debug/org.tizen.telegramtizen-1.0.0-arm.tpk [new file with mode: 0644]
TelegramTizen/Debug/org.tizen.telegramtizen-1.0.0-i386.tpk [new file with mode: 0644]
TelegramTizen/Debug/res/edje/build.ninja [new file with mode: 0644]
TelegramTizen/Debug/res/edje/telegram_app.edj [new file with mode: 0644]
TelegramTizen/Debug/res/edje/telegram_chat_conv.edj [new file with mode: 0644]
TelegramTizen/Debug/res/edje/telegram_tizen_login.edj [new file with mode: 0644]
TelegramTizen/Debug/res/edje/telegram_tizen_reg.edj [new file with mode: 0644]
TelegramTizen/Debug/res/edje/telegramtizen.edj [new file with mode: 0644]
TelegramTizen/Debug/rules.ninja [new file with mode: 0644]
TelegramTizen/Debug/src/build.ninja [new file with mode: 0644]
TelegramTizen/Debug/src/contact_selection_view.o [new file with mode: 0644]
TelegramTizen/Debug/src/contacts_common.o [new file with mode: 0644]
TelegramTizen/Debug/src/device_contacts_manager.o [new file with mode: 0644]
TelegramTizen/Debug/src/group_chat_entry_view.o [new file with mode: 0644]
TelegramTizen/Debug/src/server_requests.o [new file with mode: 0644]
TelegramTizen/Debug/src/service_client.o [new file with mode: 0644]
TelegramTizen/Debug/src/telegramtizen.o [new file with mode: 0644]
TelegramTizen/Debug/src/tg_buddy_list.o [new file with mode: 0644]
TelegramTizen/Debug/src/tg_chat_conv_view.o [new file with mode: 0644]
TelegramTizen/Debug/src/tg_db_wrapper.o [new file with mode: 0644]
TelegramTizen/Debug/src/tg_first_registration.o [new file with mode: 0644]
TelegramTizen/Debug/src/tg_login.o [new file with mode: 0644]
TelegramTizen/Debug/src/tg_registration.o [new file with mode: 0644]
TelegramTizen/Debug/src/tg_splash_screen.o [new file with mode: 0644]
TelegramTizen/Debug/target.ninja [new file with mode: 0644]
TelegramTizen/Debug/telegramtizen [new file with mode: 0755]
TelegramTizen/contacts_utils/contacts-db-utils.c [new file with mode: 0644]
TelegramTizen/contacts_utils/contacts-db-utils.h [new file with mode: 0644]
TelegramTizen/contacts_utils/contacts-list-utils.c [new file with mode: 0644]
TelegramTizen/contacts_utils/contacts-list-utils.h [new file with mode: 0644]
TelegramTizen/contacts_utils/contacts-record-utils.c [new file with mode: 0644]
TelegramTizen/contacts_utils/contacts-record-utils.h [new file with mode: 0644]
TelegramTizen/db_manager/tg_db_manager.c [new file with mode: 0644]
TelegramTizen/db_manager/tg_db_manager.h [new file with mode: 0644]
TelegramTizen/inc/contact_selection_view.h [new file with mode: 0644]
TelegramTizen/inc/contacts_common.h [new file with mode: 0644]
TelegramTizen/inc/device_contacts_manager.h [new file with mode: 0644]
TelegramTizen/inc/group_chat_entry_view.h [new file with mode: 0644]
TelegramTizen/inc/logger.h [new file with mode: 0644]
TelegramTizen/inc/server_requests.h [new file with mode: 0644]
TelegramTizen/inc/service_client.h [new file with mode: 0644]
TelegramTizen/inc/telegramtizen.h [new file with mode: 0644]
TelegramTizen/inc/tg_buddy_list.h [new file with mode: 0644]
TelegramTizen/inc/tg_chat_conv_view.h [new file with mode: 0644]
TelegramTizen/inc/tg_db_wrapper.h [new file with mode: 0644]
TelegramTizen/inc/tg_first_registration.h [new file with mode: 0644]
TelegramTizen/inc/tg_login.h [new file with mode: 0644]
TelegramTizen/inc/tg_registration.h [new file with mode: 0644]
TelegramTizen/inc/tg_splash_screen.h [new file with mode: 0644]
TelegramTizen/project_def.prop [new file with mode: 0644]
TelegramTizen/res/edje/telegram_app.edc [new file with mode: 0644]
TelegramTizen/res/edje/telegram_chat_conv.edc [new file with mode: 0644]
TelegramTizen/res/edje/telegram_tizen_login.edc [new file with mode: 0644]
TelegramTizen/res/edje/telegram_tizen_reg.edc [new file with mode: 0644]
TelegramTizen/res/edje/telegramtizen.edc [new file with mode: 0644]
TelegramTizen/res/images/ApplicationIcon.png [new file with mode: 0644]
TelegramTizen/res/images/SplashScreenImage.jpg [new file with mode: 0644]
TelegramTizen/res/images/attach_icon.png [new file with mode: 0755]
TelegramTizen/res/images/attach_icon_old.png [new file with mode: 0644]
TelegramTizen/res/images/blur_img.jpg [new file with mode: 0755]
TelegramTizen/res/images/bubble_a.9.png [new file with mode: 0644]
TelegramTizen/res/images/bubble_b.9.png [new file with mode: 0644]
TelegramTizen/res/images/bubble_rec_bg.#.png [new file with mode: 0755]
TelegramTizen/res/images/bubble_sent_bg.#.png [new file with mode: 0755]
TelegramTizen/res/images/buddy.jpeg [new file with mode: 0644]
TelegramTizen/res/images/call_btn_circle.png [new file with mode: 0644]
TelegramTizen/res/images/camera-icon.png [new file with mode: 0644]
TelegramTizen/res/images/cancel_bn_press.png [new file with mode: 0755]
TelegramTizen/res/images/chat_bg.jpg [new file with mode: 0644]
TelegramTizen/res/images/message_line.png [new file with mode: 0644]
TelegramTizen/res/images/msg_in_photo.9.png [new file with mode: 0755]
TelegramTizen/res/images/msg_out_photo.9.png [new file with mode: 0755]
TelegramTizen/res/images/ok_bn_press.png [new file with mode: 0755]
TelegramTizen/res/images/robo_buddy.png [new file with mode: 0644]
TelegramTizen/res/images/search_icon.png [new file with mode: 0644]
TelegramTizen/res/images/send_icon.png [new file with mode: 0644]
TelegramTizen/res/images/smiley_icon.png [new file with mode: 0755]
TelegramTizen/res/images/smiley_icon_old.png [new file with mode: 0644]
TelegramTizen/shared/res/telegramtizen.png [new file with mode: 0644]
TelegramTizen/src/contact_selection_view.c [new file with mode: 0644]
TelegramTizen/src/contacts_common.c [new file with mode: 0644]
TelegramTizen/src/device_contacts_manager.c [new file with mode: 0644]
TelegramTizen/src/group_chat_entry_view.c [new file with mode: 0644]
TelegramTizen/src/server_requests.c [new file with mode: 0644]
TelegramTizen/src/service_client.c [new file with mode: 0644]
TelegramTizen/src/telegramtizen.c [new file with mode: 0644]
TelegramTizen/src/tg_buddy_list.c [new file with mode: 0644]
TelegramTizen/src/tg_chat_conv_view.c [new file with mode: 0644]
TelegramTizen/src/tg_db_wrapper.c [new file with mode: 0644]
TelegramTizen/src/tg_first_registration.c [new file with mode: 0644]
TelegramTizen/src/tg_login.c [new file with mode: 0644]
TelegramTizen/src/tg_registration.c [new file with mode: 0644]
TelegramTizen/src/tg_splash_screen.c [new file with mode: 0644]
TelegramTizen/tg_utils/tg_common.h [new file with mode: 0644]
TelegramTizen/tizen-manifest.xml [new file with mode: 0644]
tg-engine-service/.cproject [new file with mode: 0644]
tg-engine-service/.exportMap [new file with mode: 0644]
tg-engine-service/.package-stamp [new file with mode: 0644]
tg-engine-service/.project [new file with mode: 0644]
tg-engine-service/.rds_delta [new file with mode: 0644]
tg-engine-service/.sdk_delta.info [new file with mode: 0644]
tg-engine-service/.sign/.manifest.tmp [new file with mode: 0644]
tg-engine-service/.sign/author-signature.xml [new file with mode: 0644]
tg-engine-service/.sign/signature1.xml [new file with mode: 0644]
tg-engine-service/.tproject [new file with mode: 0644]
tg-engine-service/Debug/.gdbcommand [new file with mode: 0644]
tg-engine-service/Debug/.gdbinit [new file with mode: 0644]
tg-engine-service/Debug/.ninja_deps [new file with mode: 0644]
tg-engine-service/Debug/.ninja_log [new file with mode: 0644]
tg-engine-service/Debug/build.ninja [new file with mode: 0644]
tg-engine-service/Debug/compile_commands.json [new file with mode: 0644]
tg-engine-service/Debug/db_manager/build.ninja [new file with mode: 0644]
tg-engine-service/Debug/db_manager/tg_db_manager.o [new file with mode: 0644]
tg-engine-service/Debug/mtprotocol/auto/auto.o [new file with mode: 0644]
tg-engine-service/Debug/mtprotocol/auto/build.ninja [new file with mode: 0644]
tg-engine-service/Debug/mtprotocol/binlog.o [new file with mode: 0644]
tg-engine-service/Debug/mtprotocol/build.ninja [new file with mode: 0644]
tg-engine-service/Debug/mtprotocol/mime-types.o [new file with mode: 0644]
tg-engine-service/Debug/mtprotocol/mtproto-client.o [new file with mode: 0644]
tg-engine-service/Debug/mtprotocol/mtproto-common.o [new file with mode: 0644]
tg-engine-service/Debug/mtprotocol/mtproto-utils.o [new file with mode: 0644]
tg-engine-service/Debug/mtprotocol/queries.o [new file with mode: 0644]
tg-engine-service/Debug/mtprotocol/structures.o [new file with mode: 0644]
tg-engine-service/Debug/mtprotocol/tg-mime-types.o [new file with mode: 0644]
tg-engine-service/Debug/mtprotocol/tgl-net.o [new file with mode: 0644]
tg-engine-service/Debug/mtprotocol/tgl-timers.o [new file with mode: 0644]
tg-engine-service/Debug/mtprotocol/tgl.o [new file with mode: 0644]
tg-engine-service/Debug/mtprotocol/tools.o [new file with mode: 0644]
tg-engine-service/Debug/mtprotocol/updates.o [new file with mode: 0644]
tg-engine-service/Debug/org.tizen.tg-engine-service-1.0.0-arm.tpk [new file with mode: 0644]
tg-engine-service/Debug/rules.ninja [new file with mode: 0644]
tg-engine-service/Debug/src/build.ninja [new file with mode: 0644]
tg-engine-service/Debug/src/server_response.o [new file with mode: 0644]
tg-engine-service/Debug/src/tg-engine-service.o [new file with mode: 0644]
tg-engine-service/Debug/src/tg_db_wrapper.o [new file with mode: 0644]
tg-engine-service/Debug/src/tg_server.o [new file with mode: 0644]
tg-engine-service/Debug/target.ninja [new file with mode: 0644]
tg-engine-service/Debug/tg-engine-service [new file with mode: 0755]
tg-engine-service/Debug/tg_engine/build.ninja [new file with mode: 0644]
tg-engine-service/Debug/tg_engine/tg_engine.o [new file with mode: 0644]
tg-engine-service/db_manager/tg_db_manager.c [new file with mode: 0644]
tg-engine-service/db_manager/tg_db_manager.h [new file with mode: 0644]
tg-engine-service/inc/logger.h [new file with mode: 0644]
tg-engine-service/inc/server_response.h [new file with mode: 0644]
tg-engine-service/inc/tg-engine-service.h [new file with mode: 0644]
tg-engine-service/inc/tg_db_wrapper.h [new file with mode: 0644]
tg-engine-service/inc/tg_server.h [new file with mode: 0644]
tg-engine-service/mtprotocol/auto-static.h [new file with mode: 0644]
tg-engine-service/mtprotocol/auto.h [new file with mode: 0644]
tg-engine-service/mtprotocol/auto/auto-header.h [new file with mode: 0644]
tg-engine-service/mtprotocol/auto/auto.c [new file with mode: 0644]
tg-engine-service/mtprotocol/auto/constants.h [new file with mode: 0644]
tg-engine-service/mtprotocol/binlog.c [new file with mode: 0644]
tg-engine-service/mtprotocol/mime-types.c [new file with mode: 0644]
tg-engine-service/mtprotocol/mtproto-client.c [new file with mode: 0644]
tg-engine-service/mtprotocol/mtproto-client.h [new file with mode: 0644]
tg-engine-service/mtprotocol/mtproto-common.c [new file with mode: 0644]
tg-engine-service/mtprotocol/mtproto-common.h [new file with mode: 0644]
tg-engine-service/mtprotocol/mtproto-utils.c [new file with mode: 0644]
tg-engine-service/mtprotocol/mtproto-utils.h [new file with mode: 0644]
tg-engine-service/mtprotocol/no-preview.h [new file with mode: 0644]
tg-engine-service/mtprotocol/queries.c [new file with mode: 0644]
tg-engine-service/mtprotocol/queries.h [new file with mode: 0644]
tg-engine-service/mtprotocol/structures.c [new file with mode: 0644]
tg-engine-service/mtprotocol/tg-mime-types.c [new file with mode: 0644]
tg-engine-service/mtprotocol/tg-mime-types.h [new file with mode: 0644]
tg-engine-service/mtprotocol/tgl-binlog.h [new file with mode: 0644]
tg-engine-service/mtprotocol/tgl-fetch.h [new file with mode: 0644]
tg-engine-service/mtprotocol/tgl-inner.h [new file with mode: 0644]
tg-engine-service/mtprotocol/tgl-layout.h [new file with mode: 0644]
tg-engine-service/mtprotocol/tgl-net-inner.h [new file with mode: 0644]
tg-engine-service/mtprotocol/tgl-net.c [new file with mode: 0644]
tg-engine-service/mtprotocol/tgl-net.h [new file with mode: 0644]
tg-engine-service/mtprotocol/tgl-structures.h [new file with mode: 0644]
tg-engine-service/mtprotocol/tgl-timers.c [new file with mode: 0644]
tg-engine-service/mtprotocol/tgl-timers.h [new file with mode: 0644]
tg-engine-service/mtprotocol/tgl.c [new file with mode: 0644]
tg-engine-service/mtprotocol/tgl.h [new file with mode: 0644]
tg-engine-service/mtprotocol/tools.c [new file with mode: 0644]
tg-engine-service/mtprotocol/tools.h [new file with mode: 0644]
tg-engine-service/mtprotocol/tree.h [new file with mode: 0644]
tg-engine-service/mtprotocol/updates.c [new file with mode: 0644]
tg-engine-service/mtprotocol/updates.h [new file with mode: 0644]
tg-engine-service/project_def.prop [new file with mode: 0644]
tg-engine-service/res/server.pub [new file with mode: 0644]
tg-engine-service/shared/res/tg-engine-service.png [new file with mode: 0644]
tg-engine-service/src/server_response.c [new file with mode: 0644]
tg-engine-service/src/tg-engine-service.c [new file with mode: 0644]
tg-engine-service/src/tg_db_wrapper.c [new file with mode: 0644]
tg-engine-service/src/tg_server.c [new file with mode: 0644]
tg-engine-service/tg_engine/tg_engine.c [new file with mode: 0644]
tg-engine-service/tg_engine/tg_engine.h [new file with mode: 0644]
tg-engine-service/tg_engine_utils/tg_common.h [new file with mode: 0644]
tg-engine-service/tizen-manifest.xml [new file with mode: 0644]

diff --git a/TelegramTizen/.cproject b/TelegramTizen/.cproject
new file mode 100644 (file)
index 0000000..3d38226
--- /dev/null
@@ -0,0 +1,593 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+       <storageModule moduleId="org.eclipse.cdt.core.settings">
+               <cconfiguration id="org.tizen.nativecore.config.sbi.gcc45.app.debug.1480907646">
+                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.app.debug.1480907646" moduleId="org.eclipse.cdt.core.settings" name="Debug">
+                               <externalSettings/>
+                               <extensions>
+                                       <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+                               </extensions>
+                       </storageModule>
+                       <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+                               <configuration artifactName="telegramtizen" buildArtefactType="org.tizen.nativecore.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.app" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;" id="org.tizen.nativecore.config.sbi.gcc45.app.debug.1480907646" name="Debug" parent="org.tizen.nativecore.config.sbi.gcc45.app.debug">
+                                       <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.app.debug.1480907646." name="/" resourcePath="">
+                                               <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.app.debug.732635461" name="Tizen Native Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.app.debug">
+                                                       <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.1666638481" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+                                                       <builder autoBuildTarget="all" buildPath="${workspace_loc:/TelegramTizen}/Debug" enableAutoBuild="true" id="org.tizen.nativecore.target.sbi.gnu.builder.264573658" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Tizen Application Builder" superClass="org.tizen.nativecore.target.sbi.gnu.builder"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.847004608" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
+                                                       <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.688919936" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
+                                                               <option id="gnu.cpp.compiler.option.optimization.level.796347749" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
+                                                               <option id="sbi.gnu.cpp.compiler.option.debugging.level.core.1157026241" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
+                                                               <option id="sbi.gnu.cpp.compiler.option.436467775" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="mobile-2.4-device.core_llvm36.armel.core.app"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.963945851" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SDK_PATH}/library&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-audio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-avahi-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-fb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-x-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ewebkit2-0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.904841999" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value=" -fPIE"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-mthumb"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.compiler.option.include.paths.628878989" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/contacts_utils}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/tg_utils}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/db_manager}&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks.core.1465037038" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="Native_API"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.compiler.option.preprocessor.def.792393861" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" valueType="definedSymbols">
+                                                                       <listOptionValue builtIn="false" value="_DEBUG"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.384344473" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+                                                       </tool>
+                                                       <tool command="clang" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.1574848548" name="C Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.c.compiler">
+                                                               <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.854373664" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
+                                                               <option id="sbi.gnu.c.compiler.option.debugging.level.core.882196011" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" value="gnu.c.debugging.level.max" valueType="enumerated"/>
+                                                               <option id="sbi.gnu.c.compiler.option.1798192360" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="mobile-2.4-device.core_llvm36.armel.core.app"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.1914765975" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.core" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SDK_PATH}/library&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-audio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-avahi-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-fb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-x-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ewebkit2-0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.142053796" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value=" -fPIE"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-mthumb"/>
+                                                               </option>
+                                                               <option id="gnu.c.compiler.option.include.paths.1793735147" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/contacts_utils}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/tg_utils}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/db_manager}&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks.core.1333110749" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.core" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="Native_API"/>
+                                                               </option>
+                                                               <option id="gnu.c.compiler.option.preprocessor.def.symbols.1413535458" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
+                                                                       <listOptionValue builtIn="false" value="_DEBUG"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1553916351" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.263738673" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+                                                       <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.linker.1525835423" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
+                                                               <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.153945114" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_LINKER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_LINKER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="-pie -lpthread "/>
+                                                                       <listOptionValue builtIn="false" value="-Xlinker -rpath=&quot;/home/developer/sdk_tools/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-Xlinker --version-script=&quot;${PROJ_PATH}/.exportMap&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-L&quot;${SBI_SYSROOT}/usr/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.link.option.paths.698986850" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib}&quot;"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1943933302" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+                                                                       <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+                                                                       <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+                                                               </inputType>
+                                                       </tool>
+                                                       <tool command="arm-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.1332015547" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+                                                               <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1429202929" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativecore.tool.fnmapgen.2032294145" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
+                                                       <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.1607813591" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
+                                                       <tool id="org.tizen.nativecore.tool.ast.438353529" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
+                                                       <tool id="org.tizen.nativecore.tool.ast.cpp.130295306" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.1032086312" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.po.compiler.146184220" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.658124979" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler"/>
+                                               </toolChain>
+                                       </folderInfo>
+                                       <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.app.debug.1480907646.1709878593" name="/" resourcePath="res/edje">
+                                               <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.app.debug.725123523" name="Tizen Native Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.app.debug" unusedChildren="">
+                                                       <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.1498088241" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.847004608"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.2045870313" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.688919936">
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.159002763" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.643139391" name="C Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.c.compiler.1574848548">
+                                                               <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.867430856" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.1684088575" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.263738673"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.cpp.linker.638857064" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker.1525835423"/>
+                                                       <tool id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.1606078913" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.1332015547">
+                                                               <inputType id="cdt.managedbuild.tool.gnu.assembler.input.549488250" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativecore.tool.fnmapgen.480883553" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.2032294145"/>
+                                                       <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.997405933" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp.1607813591"/>
+                                                       <tool id="org.tizen.nativecore.tool.ast.158001735" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast.438353529"/>
+                                                       <tool id="org.tizen.nativecore.tool.ast.cpp.1347198849" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp.130295306"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.1299584974" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.1032086312"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.po.compiler.1802237344" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler.146184220"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.450663799" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler.658124979">
+                                                               <option id="sbi.gnu.edc.compiler.option.misc.id.564675978" name="Image Path (-id)" superClass="sbi.gnu.edc.compiler.option.misc.id" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}}/edje/images&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/res/images}&quot;"/>
+                                                               </option>
+                                                       </tool>
+                                               </toolChain>
+                                       </folderInfo>
+                                       <sourceEntries>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="contacts_utils"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="db_manager"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="inc"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="res"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="shared"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="tg_utils"/>
+                                       </sourceEntries>
+                               </configuration>
+                       </storageModule>
+                       <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+               </cconfiguration>
+               <cconfiguration id="org.tizen.nativecore.config.sbi.gcc45.app.release.196476858">
+                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.app.release.196476858" moduleId="org.eclipse.cdt.core.settings" name="Release">
+                               <externalSettings/>
+                               <extensions>
+                                       <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+                               </extensions>
+                       </storageModule>
+                       <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+                               <configuration artifactName="telegramtizen" buildArtefactType="org.tizen.nativecore.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.app" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;" id="org.tizen.nativecore.config.sbi.gcc45.app.release.196476858" name="Release" parent="org.tizen.nativecore.config.sbi.gcc45.app.release">
+                                       <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.app.release.196476858." name="/" resourcePath="">
+                                               <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.app.release.792672112" name="Tizen Native Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.app.release">
+                                                       <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.1708775375" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+                                                       <builder buildPath="${workspace_loc:/TelegramTizen}/Release" id="org.tizen.nativecore.target.sbi.gnu.builder.494743309" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Tizen Application Builder" superClass="org.tizen.nativecore.target.sbi.gnu.builder"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.1244210555" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
+                                                       <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.1267405084" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
+                                                               <option id="gnu.cpp.compiler.option.optimization.level.1380108046" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
+                                                               <option id="sbi.gnu.cpp.compiler.option.debugging.level.core.1670582656" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core"/>
+                                                               <option id="sbi.gnu.cpp.compiler.option.1869675469" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="mobile-2.4-emulator.core_llvm36.i386.core.app"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.2127714437" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SDK_PATH}/library&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-audio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-avahi-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-fb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-x-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ewebkit2-0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.904099362" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value=" -fPIE"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.compiler.option.include.paths.383957679" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks.core.493027510" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="Native_API"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.696858283" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+                                                       </tool>
+                                                       <tool command="clang" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.274222533" name="C Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.c.compiler">
+                                                               <option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.option.optimization.level.1349055118" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
+                                                               <option id="sbi.gnu.c.compiler.option.debugging.level.core.568229207" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core"/>
+                                                               <option id="sbi.gnu.c.compiler.option.2011803711" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="mobile-2.4-emulator.core_llvm36.i386.core.app"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.1801593329" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.core" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SDK_PATH}/library&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-audio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-avahi-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-fb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-x-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ewebkit2-0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.202445173" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value=" -fPIE"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </option>
+                                                               <option id="gnu.c.compiler.option.include.paths.963237261" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks.core.110877648" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.core" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="Native_API"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.695520615" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.991887344" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+                                                       <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.linker.1751401899" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
+                                                               <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.729223651" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_LINKER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_LINKER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="-pie -lpthread "/>
+                                                                       <listOptionValue builtIn="false" value="-Xlinker -rpath=&quot;/home/developer/sdk_tools/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-Xlinker --version-script=&quot;${PROJ_PATH}/.exportMap&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-L&quot;${SBI_SYSROOT}/usr/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.link.option.paths.250836231" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib}&quot;"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1991114388" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+                                                                       <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+                                                                       <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+                                                               </inputType>
+                                                       </tool>
+                                                       <tool command="i386-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.147879251" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+                                                               <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1497526917" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativecore.tool.fnmapgen.298370672" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
+                                                       <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.1322140956" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
+                                                       <tool id="org.tizen.nativecore.tool.ast.1715481435" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
+                                                       <tool id="org.tizen.nativecore.tool.ast.cpp.230900207" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.1941822920" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.po.compiler.1873605222" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.1684654806" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler"/>
+                                               </toolChain>
+                                       </folderInfo>
+                                       <sourceEntries>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="contacts_utils"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="db_manager"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="inc"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="res"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="shared"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="tg_utils"/>
+                                       </sourceEntries>
+                               </configuration>
+                       </storageModule>
+                       <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+               </cconfiguration>
+       </storageModule>
+       <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+               <project id="TelegramTizen.org.tizen.nativecore.target.sbi.gcc45.app.625987752" name="Tizen Native Application" projectType="org.tizen.nativecore.target.sbi.gcc45.app"/>
+       </storageModule>
+       <storageModule moduleId="scannerConfiguration">
+               <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+               <scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.app.release.196476858">
+                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+               </scannerConfigBuildInfo>
+               <scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.app.debug.1480907646">
+                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+               </scannerConfigBuildInfo>
+       </storageModule>
+       <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
+       <storageModule moduleId="refreshScope"/>
+       <storageModule moduleId="com.samsung.tizen.nativeapp.projectInfo" version="1.0.0"/>
+</cproject>
diff --git a/TelegramTizen/.exportMap b/TelegramTizen/.exportMap
new file mode 100644 (file)
index 0000000..43e310e
--- /dev/null
@@ -0,0 +1,4 @@
+{
+       global: main;
+       local: *;
+};
diff --git a/TelegramTizen/.project b/TelegramTizen/.project
new file mode 100644 (file)
index 0000000..7ad7f6d
--- /dev/null
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>TelegramTizen</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+                       <triggers>full,incremental,</triggers>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.tizen.nativecore.apichecker.core.builder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.cdt.core.cnature</nature>
+               <nature>org.eclipse.cdt.core.ccnature</nature>
+               <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+               <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+               <nature>org.tizen.nativecore.apichecker.core.tizenCppNature</nature>
+       </natures>
+       <filteredResources>
+               <filter>
+                       <id>1435638740691</id>
+                       <name></name>
+                       <type>26</type>
+                       <matcher>
+                               <id>org.eclipse.ui.ide.multiFilter</id>
+                               <arguments>1.0-projectRelativePath-matches-false-false-*/.tpk</arguments>
+                       </matcher>
+               </filter>
+       </filteredResources>
+</projectDescription>
diff --git a/TelegramTizen/.rds_delta b/TelegramTizen/.rds_delta
new file mode 100644 (file)
index 0000000..c13af51
--- /dev/null
@@ -0,0 +1,8 @@
+#delete
+#add
+#modify
+author-signature.xml
+signature1.xml
+res/edje/telegram_chat_conv.edj
+res/edje/telegram_tizen_reg.edj
+bin/telegramtizen
diff --git a/TelegramTizen/.sdk_delta.info b/TelegramTizen/.sdk_delta.info
new file mode 100644 (file)
index 0000000..0e352a1
Binary files /dev/null and b/TelegramTizen/.sdk_delta.info differ
diff --git a/TelegramTizen/.sign/.manifest.tmp b/TelegramTizen/.sign/.manifest.tmp
new file mode 100644 (file)
index 0000000..208e9c5
--- /dev/null
@@ -0,0 +1,33 @@
+res/edje/build.ninja__DEL__5Bv6UE65TchAsupuKpEc8zodEfXRsqfAfNLYdZS6OLo=
+res/images/ApplicationIcon.png__DEL__fYOyDP9AHU2KysL2uutXN7EdNkTmoKMpOeMy5lk4hcA=
+res/images/SplashScreenImage.jpg__DEL__ojbgqZr346V3rlFjBzk1bnEDx/+wuHMOfUYZRhbIiRc=
+res/images/attach_icon.png__DEL__A6VlHx4thEsMg+NTZdkYM2IqCJqqVvcI0dpdUcnHR70=
+res/images/attach_icon_old.png__DEL__EBfoL6MkG+CIBgPuHqpY8YqCO4ViOG5ufjBvzgcJJDc=
+res/images/blur_img.jpg__DEL__6paZwOlht8jrNjr4gdRplaMWdnkSDzWmC6UKbnQFHJc=
+res/images/bubble_a.9.png__DEL__Y85fob46bnGPpq+ORnoMUEyUomVyXzAGSQmchFVwyeE=
+res/images/bubble_b.9.png__DEL__chkF+3ECL7+HwIL4DQSPB5hpdGO0d5IDzlSEhRrN9uQ=
+res/images/bubble_rec_bg.#.png__DEL__hnFeRQP6sRqxZhyQdxDb2V3npK8IA5ruai+IMLmfXK0=
+res/images/bubble_sent_bg.#.png__DEL__X2FAcjrHb9H0qtqVYBKlaqzkFRsjbJfhJFFj5pEmxpU=
+res/images/buddy.jpeg__DEL__zhLC0vryEDvbTbiq+MVvd2ofPNlPhbrbTqZxpWPeVFo=
+res/images/call_btn_circle.png__DEL__EgPvqvBN5R6Xc8rLFm7FHnPRbWNZ0z8Eg5GPRZbwlkg=
+res/images/camera-icon.png__DEL__CHO70YBeLOqri6riv4MAzNw6WXXvRo6P4WTH5hRO/gk=
+res/images/cancel_bn_press.png__DEL__9lFMJZD7eoCLtG645rEIIN1yaqby9KXoTK7InX0sZT0=
+res/images/chat_bg.jpg__DEL__LqxUP5tUBoiRU9+YtNok6CjXfQXs9eQ5Jg3MRRCE+yk=
+res/images/message_line.png__DEL__P3/Wz1E45zVA0tqXcnPXoC+WMnrpQeIGZWX/vP0+8vo=
+res/images/msg_in_photo.9.png__DEL__RXJ33WTbq9NrdIr4HWmaWcULtaR+SboPTVBK6119t30=
+res/images/msg_out_photo.9.png__DEL__DecL1V1Inwi+DW3Q3/2L0wrmkrgYWD48ih/NSzn5D3A=
+res/images/ok_bn_press.png__DEL__c6C74P3inEz51e3RNQ5B6hxqaFa0GzNKuK/N0hdUBJg=
+res/images/robo_buddy.png__DEL__65dn6e9XMB3ZnQ+F9Z0FJXD4H3od/s/JbFJIWezbVW8=
+res/images/search_icon.png__DEL__B370EsyKLuOtefwT4KE7RNhHsBvto54ASPOECMjcrS0=
+res/images/send_icon.png__DEL__9NpK6mHmTp25eWspi37WF0lmxj8Ji2+o/aQpUh9JgmA=
+res/images/smiley_icon.png__DEL__LFISck5bLCXwKGtZAU/QvaVvuk+ydue5my2TQYNkrBI=
+res/images/smiley_icon_old.png__DEL__QJlVejY79XUDl875YknNCiG+qQU796EEe4s5Lm2VE9I=
+shared/res/telegramtizen.png__DEL__1d0oEZHqPn+QzNzGIHwj9ODby6x9ggFs9uOsav6jPNs=
+tizen-manifest.xml__DEL__lIIt1qKHvumIquixjbs9iuLBI8w+RpFsowvQeTX5sPk=
+author-signature.xml__DEL__g5EkE41zGnwgEHwCxo9XTc6KE3OxrtbG1gFjezHncao=
+res/edje/telegram_app.edj__DEL__u+6/n3t4Cx6W9525SSpLV3SHgzNUqp3iiSWVefqP9ks=
+res/edje/telegram_tizen_login.edj__DEL__oqM1O0Ow7GZcbsHdMVdZdBIT4gfBtWhyIrf9YOmzBMM=
+res/edje/telegramtizen.edj__DEL__ij31uFD0WS2G02fmI2kqNiZvVhBG8Ys8mCgwumEWPF0=
+bin/telegramtizen__DEL__kfaBr8419CflRpX2SusTjfSzsKgbG7ODCfDWZeqzKVU=
+res/edje/telegram_chat_conv.edj__DEL__VNmekOdMzxBdpfnB5eGQRlkN79bNks0L45nqtUUyPGc=
+res/edje/telegram_tizen_reg.edj__DEL__jEZFW2h6D4BmXKCrGqaVXcIEefXgC2dEXx8ezLohK5I=
diff --git a/TelegramTizen/.sign/author-signature.xml b/TelegramTizen/.sign/author-signature.xml
new file mode 100644 (file)
index 0000000..e130c52
--- /dev/null
@@ -0,0 +1,182 @@
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="AuthorSignature">
+<SignedInfo>
+<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></CanonicalizationMethod>
+<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"></SignatureMethod>
+<Reference URI="bin%2Ftelegramtizen">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>kfaBr8419CflRpX2SusTjfSzsKgbG7ODCfDWZeqzKVU=</DigestValue>
+</Reference>
+<Reference URI="res%2Fedje%2Fbuild.ninja">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>5Bv6UE65TchAsupuKpEc8zodEfXRsqfAfNLYdZS6OLo=</DigestValue>
+</Reference>
+<Reference URI="res%2Fedje%2Ftelegram_app.edj">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>u+6/n3t4Cx6W9525SSpLV3SHgzNUqp3iiSWVefqP9ks=</DigestValue>
+</Reference>
+<Reference URI="res%2Fedje%2Ftelegram_chat_conv.edj">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>VNmekOdMzxBdpfnB5eGQRlkN79bNks0L45nqtUUyPGc=</DigestValue>
+</Reference>
+<Reference URI="res%2Fedje%2Ftelegram_tizen_login.edj">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>oqM1O0Ow7GZcbsHdMVdZdBIT4gfBtWhyIrf9YOmzBMM=</DigestValue>
+</Reference>
+<Reference URI="res%2Fedje%2Ftelegram_tizen_reg.edj">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>jEZFW2h6D4BmXKCrGqaVXcIEefXgC2dEXx8ezLohK5I=</DigestValue>
+</Reference>
+<Reference URI="res%2Fedje%2Ftelegramtizen.edj">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>ij31uFD0WS2G02fmI2kqNiZvVhBG8Ys8mCgwumEWPF0=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2FApplicationIcon.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>fYOyDP9AHU2KysL2uutXN7EdNkTmoKMpOeMy5lk4hcA=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2FSplashScreenImage.jpg">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>ojbgqZr346V3rlFjBzk1bnEDx/+wuHMOfUYZRhbIiRc=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fattach_icon.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>A6VlHx4thEsMg+NTZdkYM2IqCJqqVvcI0dpdUcnHR70=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fattach_icon_old.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>EBfoL6MkG+CIBgPuHqpY8YqCO4ViOG5ufjBvzgcJJDc=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fblur_img.jpg">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>6paZwOlht8jrNjr4gdRplaMWdnkSDzWmC6UKbnQFHJc=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fbubble_a.9.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>Y85fob46bnGPpq+ORnoMUEyUomVyXzAGSQmchFVwyeE=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fbubble_b.9.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>chkF+3ECL7+HwIL4DQSPB5hpdGO0d5IDzlSEhRrN9uQ=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fbubble_rec_bg.%23.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>hnFeRQP6sRqxZhyQdxDb2V3npK8IA5ruai+IMLmfXK0=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fbubble_sent_bg.%23.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>X2FAcjrHb9H0qtqVYBKlaqzkFRsjbJfhJFFj5pEmxpU=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fbuddy.jpeg">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>zhLC0vryEDvbTbiq+MVvd2ofPNlPhbrbTqZxpWPeVFo=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fcall_btn_circle.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>EgPvqvBN5R6Xc8rLFm7FHnPRbWNZ0z8Eg5GPRZbwlkg=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fcamera-icon.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>CHO70YBeLOqri6riv4MAzNw6WXXvRo6P4WTH5hRO/gk=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fcancel_bn_press.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>9lFMJZD7eoCLtG645rEIIN1yaqby9KXoTK7InX0sZT0=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fchat_bg.jpg">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>LqxUP5tUBoiRU9+YtNok6CjXfQXs9eQ5Jg3MRRCE+yk=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fmessage_line.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>P3/Wz1E45zVA0tqXcnPXoC+WMnrpQeIGZWX/vP0+8vo=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fmsg_in_photo.9.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>RXJ33WTbq9NrdIr4HWmaWcULtaR+SboPTVBK6119t30=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fmsg_out_photo.9.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>DecL1V1Inwi+DW3Q3/2L0wrmkrgYWD48ih/NSzn5D3A=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fok_bn_press.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>c6C74P3inEz51e3RNQ5B6hxqaFa0GzNKuK/N0hdUBJg=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Frobo_buddy.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>65dn6e9XMB3ZnQ+F9Z0FJXD4H3od/s/JbFJIWezbVW8=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fsearch_icon.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>B370EsyKLuOtefwT4KE7RNhHsBvto54ASPOECMjcrS0=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fsend_icon.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>9NpK6mHmTp25eWspi37WF0lmxj8Ji2+o/aQpUh9JgmA=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fsmiley_icon.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>LFISck5bLCXwKGtZAU/QvaVvuk+ydue5my2TQYNkrBI=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fsmiley_icon_old.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>QJlVejY79XUDl875YknNCiG+qQU796EEe4s5Lm2VE9I=</DigestValue>
+</Reference>
+<Reference URI="shared%2Fres%2Ftelegramtizen.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>1d0oEZHqPn+QzNzGIHwj9ODby6x9ggFs9uOsav6jPNs=</DigestValue>
+</Reference>
+<Reference URI="tizen-manifest.xml">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>lIIt1qKHvumIquixjbs9iuLBI8w+RpFsowvQeTX5sPk=</DigestValue>
+</Reference>
+<Reference URI="#prop">
+<Transforms>
+<Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11"></Transform>
+</Transforms>
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>lpo8tUDs054eLlBQXiDPVDVKfw30ZZdtkRs1jd7H5K8=</DigestValue>
+</Reference>
+</SignedInfo>
+<SignatureValue>
+j6i7JH5+k0FkVD/rwQyI58zNZtSr0ZhRUrIZwmrYHL0eVophxGWbmwSVNalRWBw/M9BoQjKnahkr
+C4lXbvxqj+W8lbP6feNgz36hB9tog8qTwFhNDzQFKlBgKCj6TRVhFsWY+PyWYYO1mqsBmo+bwTB7
+EelXLybC7i/rwps6FKQ=
+</SignatureValue>
+<KeyInfo>
+<X509Data>
+<X509Certificate>
+MIIClTCCAX2gAwIBAgIGAU5CPYZKMA0GCSqGSIb3DQEBBQUAMFYxGjAYBgNVBAoMEVRpemVuIEFz
+c29jaWF0aW9uMRowGAYDVQQLDBFUaXplbiBBc3NvY2lhdGlvbjEcMBoGA1UEAwwTVGl6ZW4gRGV2
+ZWxvcGVycyBDQTAeFw0xMjExMDEwMDAwMDBaFw0xOTAxMDEwMDAwMDBaMBExDzANBgNVBAMMBmF1
+dGhvcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApnBgmVV6uzCLUESPlVWB2Tr3ssWHM5Y/
+f9Rd2IiQQHloJnWUv7yVlWKfGmtbMVz7veHagh64VfJZ4tAFKvU0e9J8htiZxjmNUBvad8RlLo2P
+Rx//ww/gJHwA15KDNwi6+YaTHDBD6rP9bQ428aDKvGjPFLH8nL6zH5OEOnTjBFMCAwEAAaMyMDAw
+DAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwDQYJKoZIhvcN
+AQEFBQADggEBAKwzEFDdQc43m1oD8iJXsun5VHokjXmRyTJr6Vo5qPHQuhi552ugeWSyERc6E6nU
+KZYHq7+T49OeiXsWvrRrwc2Kx5Mq5vnAqx1oCyaL1bD1Tj0ZWNAKKvGpnLD2zV2E+JA/3a38g6bn
+ndp7PivnD/+PsIyAY9QPwh7f8Yguo6yaQOkUT/SBl8qu2aSicweFFM8Xj5g/7+TNZFMWXDBW/gED
+jd4Gw+Jef1ME5FCRIdE+4HY4dONh2iJaVYSCuzrSPPYdnXKvqn4AXGu2bZTEUH5SWywNr4A7IDQu
+2INDRobTjUczlAv5tI0EO+LydVcl3qRrMkmuqIOaPdKHbk5XRIA=
+</X509Certificate>
+<X509Certificate>
+MIIDOTCCAiGgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMRowGAYDVQQKDBFUaXplbiBBc3NvY2lh
+dGlvbjEaMBgGA1UECwwRVGl6ZW4gQXNzb2NpYXRpb24xHjAcBgNVBAMMFVRpemVuIERldmVsb3Bl
+cnMgUm9vdDAeFw0xMjAxMDEwMDAwMDBaFw0yNzAxMDEwMDAwMDBaMFYxGjAYBgNVBAoMEVRpemVu
+IEFzc29jaWF0aW9uMRowGAYDVQQLDBFUaXplbiBBc3NvY2lhdGlvbjEcMBoGA1UEAwwTVGl6ZW4g
+RGV2ZWxvcGVycyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANVGhRGmMIUyBA7o
+PCz8Sxut6z6HNkF4oDIuzuKaMzRYPeWodwe9O0gmqAkToQHfwg2giRhE5GoPld0fq+OYMMwSasCu
+g8dwODx1eDeSYVuOLWRxpAmbTXOsSFi6VoWeyaPEm18JBHvZBsU5YQtgZ6Kp7MqzvQg3pXOxtajj
+vyHxiatJl+xXrHgcXC1wgyG3buty7u/Fi2mvKXJ0PRJcCjjK81dqe/Vr20sRUCrbk02zbm5ggFt/
+jIEhV8wbFRQpliobc7J4dSTKhFfrqGM8rdd54LYhD7gSI1CFSe16pUXfcVR7FhJztRaiGLnCrwBE
+dyTZ248+D4L/qR/D0axb3jcCAwEAAaMQMA4wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOC
+AQEAnOXXQ/1O/QTDHyrmQDtFziqPY3xWlJBqJtEqXiT7Y+Ljpe66e+Ee/OjQMlZe8gu21/8cKklH
+95RxjopMWCVedXDUbWdvS2+CdyvVW/quT2E0tjqIzXDekUTYwwhlPWlGxvfj3VsxqSFq3p8Brl04
+1Gx5RKAGyKVsMfTLhbbwSWwApuBUxYfcNpKwLWGPXkysu+HctY03OKv4/xKBnVWiN8ex/Sgesi0M
++OBAOMdZMPK32uJBTeKFx1xZgTLIhk45V0hPOomPjZloiv0LSS11eyd451ufjW0iHRE7WlpR6EvI
+W6TFyZgMpQq+kg4hWl2SBTf3s2VI8Ygz7gj8TMlClg==
+</X509Certificate>
+</X509Data>
+</KeyInfo>
+<Object Id="prop"><SignatureProperties xmlns:dsp="http://www.w3.org/2009/xmldsig-properties"><SignatureProperty Id="profile" Target="#AuthorSignature"><dsp:Profile URI="http://www.w3.org/ns/widgets-digsig#profile"></dsp:Profile></SignatureProperty><SignatureProperty Id="role" Target="#AuthorSignature"><dsp:Role URI="http://www.w3.org/ns/widgets-digsig#role-author"></dsp:Role></SignatureProperty><SignatureProperty Id="identifier" Target="#AuthorSignature"><dsp:Identifier></dsp:Identifier></SignatureProperty></SignatureProperties></Object>
+</Signature>
\ No newline at end of file
diff --git a/TelegramTizen/.sign/signature1.xml b/TelegramTizen/.sign/signature1.xml
new file mode 100644 (file)
index 0000000..21ff74e
--- /dev/null
@@ -0,0 +1,184 @@
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="DistributorSignature">
+<SignedInfo>
+<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></CanonicalizationMethod>
+<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"></SignatureMethod>
+<Reference URI="author-signature.xml">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>g5EkE41zGnwgEHwCxo9XTc6KE3OxrtbG1gFjezHncao=</DigestValue>
+</Reference>
+<Reference URI="bin%2Ftelegramtizen">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>kfaBr8419CflRpX2SusTjfSzsKgbG7ODCfDWZeqzKVU=</DigestValue>
+</Reference>
+<Reference URI="res%2Fedje%2Fbuild.ninja">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>5Bv6UE65TchAsupuKpEc8zodEfXRsqfAfNLYdZS6OLo=</DigestValue>
+</Reference>
+<Reference URI="res%2Fedje%2Ftelegram_app.edj">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>u+6/n3t4Cx6W9525SSpLV3SHgzNUqp3iiSWVefqP9ks=</DigestValue>
+</Reference>
+<Reference URI="res%2Fedje%2Ftelegram_chat_conv.edj">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>VNmekOdMzxBdpfnB5eGQRlkN79bNks0L45nqtUUyPGc=</DigestValue>
+</Reference>
+<Reference URI="res%2Fedje%2Ftelegram_tizen_login.edj">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>oqM1O0Ow7GZcbsHdMVdZdBIT4gfBtWhyIrf9YOmzBMM=</DigestValue>
+</Reference>
+<Reference URI="res%2Fedje%2Ftelegram_tizen_reg.edj">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>jEZFW2h6D4BmXKCrGqaVXcIEefXgC2dEXx8ezLohK5I=</DigestValue>
+</Reference>
+<Reference URI="res%2Fedje%2Ftelegramtizen.edj">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>ij31uFD0WS2G02fmI2kqNiZvVhBG8Ys8mCgwumEWPF0=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2FApplicationIcon.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>fYOyDP9AHU2KysL2uutXN7EdNkTmoKMpOeMy5lk4hcA=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2FSplashScreenImage.jpg">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>ojbgqZr346V3rlFjBzk1bnEDx/+wuHMOfUYZRhbIiRc=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fattach_icon.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>A6VlHx4thEsMg+NTZdkYM2IqCJqqVvcI0dpdUcnHR70=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fattach_icon_old.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>EBfoL6MkG+CIBgPuHqpY8YqCO4ViOG5ufjBvzgcJJDc=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fblur_img.jpg">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>6paZwOlht8jrNjr4gdRplaMWdnkSDzWmC6UKbnQFHJc=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fbubble_a.9.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>Y85fob46bnGPpq+ORnoMUEyUomVyXzAGSQmchFVwyeE=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fbubble_b.9.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>chkF+3ECL7+HwIL4DQSPB5hpdGO0d5IDzlSEhRrN9uQ=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fbubble_rec_bg.%23.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>hnFeRQP6sRqxZhyQdxDb2V3npK8IA5ruai+IMLmfXK0=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fbubble_sent_bg.%23.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>X2FAcjrHb9H0qtqVYBKlaqzkFRsjbJfhJFFj5pEmxpU=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fbuddy.jpeg">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>zhLC0vryEDvbTbiq+MVvd2ofPNlPhbrbTqZxpWPeVFo=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fcall_btn_circle.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>EgPvqvBN5R6Xc8rLFm7FHnPRbWNZ0z8Eg5GPRZbwlkg=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fcamera-icon.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>CHO70YBeLOqri6riv4MAzNw6WXXvRo6P4WTH5hRO/gk=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fcancel_bn_press.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>9lFMJZD7eoCLtG645rEIIN1yaqby9KXoTK7InX0sZT0=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fchat_bg.jpg">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>LqxUP5tUBoiRU9+YtNok6CjXfQXs9eQ5Jg3MRRCE+yk=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fmessage_line.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>P3/Wz1E45zVA0tqXcnPXoC+WMnrpQeIGZWX/vP0+8vo=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fmsg_in_photo.9.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>RXJ33WTbq9NrdIr4HWmaWcULtaR+SboPTVBK6119t30=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fmsg_out_photo.9.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>DecL1V1Inwi+DW3Q3/2L0wrmkrgYWD48ih/NSzn5D3A=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fok_bn_press.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>c6C74P3inEz51e3RNQ5B6hxqaFa0GzNKuK/N0hdUBJg=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Frobo_buddy.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>65dn6e9XMB3ZnQ+F9Z0FJXD4H3od/s/JbFJIWezbVW8=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fsearch_icon.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>B370EsyKLuOtefwT4KE7RNhHsBvto54ASPOECMjcrS0=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fsend_icon.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>9NpK6mHmTp25eWspi37WF0lmxj8Ji2+o/aQpUh9JgmA=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fsmiley_icon.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>LFISck5bLCXwKGtZAU/QvaVvuk+ydue5my2TQYNkrBI=</DigestValue>
+</Reference>
+<Reference URI="res%2Fimages%2Fsmiley_icon_old.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>QJlVejY79XUDl875YknNCiG+qQU796EEe4s5Lm2VE9I=</DigestValue>
+</Reference>
+<Reference URI="shared%2Fres%2Ftelegramtizen.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>1d0oEZHqPn+QzNzGIHwj9ODby6x9ggFs9uOsav6jPNs=</DigestValue>
+</Reference>
+<Reference URI="tizen-manifest.xml">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>lIIt1qKHvumIquixjbs9iuLBI8w+RpFsowvQeTX5sPk=</DigestValue>
+</Reference>
+<Reference URI="#prop">
+<Transforms>
+<Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11"></Transform>
+</Transforms>
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>u/jU3U4Zm5ihTMSjKGlGYbWzDfRkGphPPHx3gJIYEJ4=</DigestValue>
+</Reference>
+</SignedInfo>
+<SignatureValue>
+q4Io4BB8aPjEOghSqtZa4sayAUOum5FO22T/fD6XhCXBa7xFS3NxyWLIO2zx+6MeDGdyOYOPHRUc
+ov39ugX+r3HB4cwoX9I3NmcFUSlYYSKvOiG4F3yM3zfu0PgAkUKDZzR3IeWRtmaPnRzBRkbi5J1X
+kzmNtFey3b9uwoKrrJ4=
+</SignatureValue>
+<KeyInfo>
+<X509Data>
+<X509Certificate>
+MIICnTCCAgYCCQDE9MbMmJ/yCzANBgkqhkiG9w0BAQUFADCBkDELMAkGA1UEBhMCS1IxDjAMBgNV
+BAgMBVN1d29uMQ4wDAYDVQQHDAVTdXdvbjEWMBQGA1UECgwNVGl6ZW4gVGVzdCBDQTEiMCAGA1UE
+CwwZVGl6ZW4gRGlzdHJpYnV0b3IgVGVzdCBDQTElMCMGA1UEAwwcVGl6ZW4gUGFydG5lciBEaXN0
+cmlidXRvciBDQTAeFw0xMjEwMjcwNzQ4MzNaFw0yMjEwMjUwNzQ4MzNaMIGUMQswCQYDVQQGEwJL
+UjEOMAwGA1UECAwFU3V3b24xDjAMBgNVBAcMBVN1d29uMRYwFAYDVQQKDA1UaXplbiBUZXN0IENB
+MSIwIAYDVQQLDBlUaXplbiBEaXN0cmlidXRvciBUZXN0IENBMSkwJwYDVQQDDCBUaXplbiBQYXJ0
+bmVyIERpc3RyaWJ1dG9yIFNpZ25lcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAy9mg2x4B
+zxlK3LJL81GsLq/pJfK1evdCKG/IOBpdoRO0rLhYnsL5+KvToPFa5g9GTZo32LikpW1NZ7++3EHE
+fnO2IGLUau4kquvhmz1LNg5xBTx7IbucmwLMRGo1BPGdsAQQLyXeQKJ5PCERmVg4MIoiL2zT/JsL
+sZ9UPT6GEB8CAwEAATANBgkqhkiG9w0BAQUFAAOBgQAw5xPBFR1XKuZ8QpsCtSE0zXVHvwIa+Ha4
+YBdRtGwEoZmiKGZV/wAhPRdmR0kISkTz20kIGz/ZwRZCVGhsr5hkkpFknYlKeKkEJ/tJfZl4D7ec
+GFAnynOzlWZqSIPz+yxX8ah9E6lTv4Vs9DhNb08nxVvxLqlpyVdk9RUsCx/yIA==
+</X509Certificate>
+<X509Certificate>
+MIICtTCCAh6gAwIBAgIJAKORBcIiXygIMA0GCSqGSIb3DQEBBQUAMIGVMQswCQYDVQQGEwJLUjEO
+MAwGA1UECAwFU3V3b24xDjAMBgNVBAcMBVN1d29uMRYwFAYDVQQKDA1UaXplbiBUZXN0IENBMSIw
+IAYDVQQLDBlUaXplbiBEaXN0cmlidXRvciBUZXN0IENBMSowKAYDVQQDDCFUaXplbiBQYXJ0bmVy
+IERpc3RyaWJ1dG9yIFJvb3QgQ0EwHhcNMTIxMDI3MDc0NTIwWhcNMjIxMDI1MDc0NTIwWjCBkDEL
+MAkGA1UEBhMCS1IxDjAMBgNVBAgMBVN1d29uMQ4wDAYDVQQHDAVTdXdvbjEWMBQGA1UECgwNVGl6
+ZW4gVGVzdCBDQTEiMCAGA1UECwwZVGl6ZW4gRGlzdHJpYnV0b3IgVGVzdCBDQTElMCMGA1UEAwwc
+VGl6ZW4gUGFydG5lciBEaXN0cmlidXRvciBDQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
+2ZQrdEowjqxUmB8FX8ej19VKY6jGHKNIRE5wrhBkuZ1b0FLRPiN3/Cl9wMkCnyJui4QhC28g1aBg
+w/JnaObcDqW1NgFVH3006+gZvCTDlw1nIEjvZa6P+uWOOi05xPPAE0feKPkO1POnOjnapfkkEVNU
+8TXsLbLYBylWT8rxZC8CAwEAAaMQMA4wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQBJ
+yJ7p6qs0JI+1iKOk/sYWVP6dMueY72qOc/wVj5c3ejOlgJNNXDMAQ14QcRRexffc68ipTwybU/3m
+tcNwydzKJe+GFa4b2zyKOvOgrfs4MKSR0T9XEPmTKeR+NDT2CbA6/kQoRYm0fSORzD2UXJzNZWe/
+WjwSA66hv4q+0QZQFQ==
+</X509Certificate>
+</X509Data>
+</KeyInfo>
+<Object Id="prop"><SignatureProperties xmlns:dsp="http://www.w3.org/2009/xmldsig-properties"><SignatureProperty Id="profile" Target="#DistributorSignature"><dsp:Profile URI="http://www.w3.org/ns/widgets-digsig#profile"></dsp:Profile></SignatureProperty><SignatureProperty Id="role" Target="#DistributorSignature"><dsp:Role URI="http://www.w3.org/ns/widgets-digsig#role-distributor"></dsp:Role></SignatureProperty><SignatureProperty Id="identifier" Target="#DistributorSignature"><dsp:Identifier></dsp:Identifier></SignatureProperty></SignatureProperties></Object>
+</Signature>
\ No newline at end of file
diff --git a/TelegramTizen/.tproject b/TelegramTizen/.tproject
new file mode 100644 (file)
index 0000000..801d1ed
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<tproject xmlns="http://www.tizen.org/tproject">
+    <platforms>
+        <platform>
+            <name>mobile-2.4</name>
+        </platform>
+    </platforms>
+    <package>
+        <blacklist/>
+    </package>
+</tproject>
diff --git a/TelegramTizen/Debug/.gdbcommand b/TelegramTizen/Debug/.gdbcommand
new file mode 100644 (file)
index 0000000..c681ce5
--- /dev/null
@@ -0,0 +1,4 @@
+set sysroot /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core
+set debug-file-directory /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/debug
+set solib-search-path /home/sandeep/workspace_2_4/TelegramTizen/Debug
+dir /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/src/debug
\ No newline at end of file
diff --git a/TelegramTizen/Debug/.gdbinit b/TelegramTizen/Debug/.gdbinit
new file mode 100644 (file)
index 0000000..a0cae5f
--- /dev/null
@@ -0,0 +1,8 @@
+python
+import sys
+sys.path.insert(0, "/home/sandeep/tizen-sdk-2.4/tools/python")
+from libstdcxx.v6.printers import register_libstdcxx_printers
+register_libstdcxx_printers (None)
+from osp.printers import register_osp_printers
+register_osp_printers (None)
+end
diff --git a/TelegramTizen/Debug/.ninja_deps b/TelegramTizen/Debug/.ninja_deps
new file mode 100644 (file)
index 0000000..4c8fac1
Binary files /dev/null and b/TelegramTizen/Debug/.ninja_deps differ
diff --git a/TelegramTizen/Debug/.ninja_log b/TelegramTizen/Debug/.ninja_log
new file mode 100644 (file)
index 0000000..55da6be
--- /dev/null
@@ -0,0 +1,75 @@
+# ninja log v5
+2      1166    0       src/tg_db_wrapper.o     bbb0f6aa875305c5
+2      1089    0       src/tg_buddy_list.o     e0dd7674b97a9cad
+2      754     0       src/tg_registration.o   5269a4e269d32923
+1      120     0       res/edje/telegram_tizen_login.edj       70ade62481aec2e5
+2      1022    0       src/tg_first_registration.o     be646fa5c2ff895d
+2      1248    0       src/tg_chat_conv_view.o ad2ff49fa0114dc
+517    651     0       telegramtizen   ae35a01660ab969a
+46     180     0       contacts_utils/contacts-list-utils.o    47e54ccb3ba36809
+166    1193    0       src/tg_login.o  ff37e61bef745cf9
+2      818     0       src/contacts_common.o   8586d6d9d166ce66
+1      1024    0       src/contact_selection_view.o    272f008fff0d3aea
+1      130     0       res/edje/telegram_app.edj       b3444e6ebe515ff5
+1      1122    0       src/group_chat_entry_view.o     9e9739a750dd4baa
+1      766     0       src/tg_splash_screen.o  9ad2387c68629e0f
+1      987     0       src/device_contacts_manager.o   eaeeba8b00d64919
+2      105     0       contacts_utils/contacts-record-utils.o  a0762a525f48cd38
+1      13      0       res/edje/telegram_tizen_reg.edj ebfa4d4a84f69c38
+2      707     0       db_manager/tg_db_manager.o      887bfaddde6130f5
+1      517     0       src/telegramtizen.o     6be13fcf3e11fe13
+2      192     0       res/edje/telegramtizen.edj      6ff3177f1901c864
+2      1168    0       src/server_requests.o   efad1c208a88d9a7
+2      128     0       src/service_client.o    b4fc02195e746f02
+1      46      0       contacts_utils/contacts-db-utils.o      68724f468bd416d6
+0      4       0       clean   d59b6dac04fa9b5d
+2      166     0       res/edje/telegram_chat_conv.edj d11682c98b72166d
+3      36      0       res/edje/telegram_tizen_reg.edj ebfa4d4a84f69c38
+2      133     0       res/edje/telegram_chat_conv.edj d11682c98b72166d
+2      502     0       src/tg_registration.o   5269a4e269d32923
+3      508     0       src/tg_splash_screen.o  9ad2387c68629e0f
+3      596     0       db_manager/tg_db_manager.o      887bfaddde6130f5
+2      13      0       res/edje/telegram_tizen_reg.edj ebfa4d4a84f69c38
+2      94      0       res/edje/telegram_chat_conv.edj d11682c98b72166d
+1      509     0       src/telegramtizen.o     6be13fcf3e11fe13
+509    642     0       telegramtizen   ae35a01660ab969a
+1      14      0       res/edje/telegram_tizen_reg.edj ebfa4d4a84f69c38
+1      95      0       res/edje/telegram_chat_conv.edj d11682c98b72166d
+27     596     0       res/edje/telegram_tizen_reg.edj ebfa4d4a84f69c38
+27     757     0       res/edje/telegram_chat_conv.edj d11682c98b72166d
+27     1954    0       telegramtizen   ae35a01660ab969a
+1      122     0       telegramtizen   ae35a01660ab969a
+2      228     0       res/edje/telegram_tizen_reg.edj ebfa4d4a84f69c38
+2      324     0       res/edje/telegram_chat_conv.edj d11682c98b72166d
+6      762     0       res/edje/telegram_tizen_reg.edj ebfa4d4a84f69c38
+6      944     0       res/edje/telegram_chat_conv.edj d11682c98b72166d
+6      1036    0       telegramtizen   ae35a01660ab969a
+1      13      0       res/edje/telegram_tizen_reg.edj ebfa4d4a84f69c38
+1      112     0       res/edje/telegram_chat_conv.edj d11682c98b72166d
+1      719     0       src/telegramtizen.o     6be13fcf3e11fe13
+719    851     0       telegramtizen   ae35a01660ab969a
+2      17      0       res/edje/telegram_tizen_reg.edj ebfa4d4a84f69c38
+2      95      0       res/edje/telegram_chat_conv.edj d11682c98b72166d
+2      509     0       src/telegramtizen.o     6be13fcf3e11fe13
+509    642     0       telegramtizen   ae35a01660ab969a
+2      16      0       res/edje/telegram_tizen_reg.edj ebfa4d4a84f69c38
+2      99      0       res/edje/telegram_chat_conv.edj d11682c98b72166d
+15     705     0       res/edje/telegram_chat_conv.edj d11682c98b72166d
+15     3526    0       src/device_contacts_manager.o   eaeeba8b00d64919
+15     3527    0       src/tg_first_registration.o     be646fa5c2ff895d
+15     3534    0       src/group_chat_entry_view.o     9e9739a750dd4baa
+15     3577    0       src/server_requests.o   efad1c208a88d9a7
+15     3590    0       src/tg_chat_conv_view.o ad2ff49fa0114dc
+15     3600    0       src/tg_db_wrapper.o     bbb0f6aa875305c5
+705    3615    0       src/tg_login.o  ff37e61bef745cf9
+15     3654    0       src/tg_buddy_list.o     e0dd7674b97a9cad
+15     3677    0       src/contact_selection_view.o    272f008fff0d3aea
+2      33      0       res/edje/telegram_tizen_reg.edj ebfa4d4a84f69c38
+2      98      0       res/edje/telegram_chat_conv.edj d11682c98b72166d
+2      511     0       src/tg_registration.o   5269a4e269d32923
+2      569     0       src/tg_splash_screen.o  9ad2387c68629e0f
+2      717     0       db_manager/tg_db_manager.o      887bfaddde6130f5
+1      16      0       res/edje/telegram_tizen_reg.edj ebfa4d4a84f69c38
+1      98      0       res/edje/telegram_chat_conv.edj d11682c98b72166d
+1      525     0       src/telegramtizen.o     6be13fcf3e11fe13
+525    685     0       telegramtizen   ae35a01660ab969a
diff --git a/TelegramTizen/Debug/build.ninja b/TelegramTizen/Debug/build.ninja
new file mode 100644 (file)
index 0000000..cb2f1b4
--- /dev/null
@@ -0,0 +1,29 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+ninja_required_version = 1.5
+include rules.ninja
+include target.ninja
+
+shell = 
+builddir = /home/sandeep/workspace_2_4/TelegramTizen/Debug
+sareportdir = /home/sandeep/workspace_2_4/TelegramTizen/SA_Report
+sa_checkers = alpha.cplusplus.NewDeleteLeaks,alpha.unix.cstring,alpha.security.ArrayBoundV2,resourceLeak,core,unix
+
+subninja ../Debug/src/build.ninja
+subninja ../Debug/res/edje/build.ninja
+subninja ../Debug/db_manager/build.ninja
+subninja ../Debug/contacts_utils/build.ninja
+
+
+targettool = clang++
+targetflags =  -L"/home/sandeep/workspace_2_4/TelegramTizen/lib" -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Xlinker --as-needed -pie -lpthread -Xlinker -rpath="/home/developer/sdk_tools/lib" --sysroot="/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core" -Xlinker --version-script="/home/sandeep/workspace_2_4/TelegramTizen/.exportMap" -L"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib" -lBrokenLocale -laccounts-svc -lanl -lappcore-agent -lbadge -lbase-utils-i18n -lbundle -lcairo -lcalendar-service2 -lcapi-appfw-alarm -lcapi-appfw-app-common -lcapi-appfw-app-control -lcapi-appfw-application -lcapi-appfw-app-manager -lcapi-appfw-event -lcapi-appfw-package-manager -lcapi-appfw-preference -lcapi-appfw-widget-application -lcapi-base-common -lcapi-content-media-content -lcapi-content-mime-type -lcapi-data-control -lcapi-geofence-manager -lcapi-location-manager -lcapi-maps-service -lcapi-media-audio-io -lcapi-media-camera -lcapi-media-codec -lcapi-media-controller -lcapi-media-image-util -lcapi-media-metadata-editor -lcapi-media-metadata-extractor -lcapi-media-player -lcapi-media-radio -lcapi-media-recorder -lcapi-media-screen-mirroring -lcapi-media-sound-manager -lcapi-media-thumbnail-util -lcapi-media-tone-player -lcapi-media-tool -lcapi-media-video-util -lcapi-media-vision -lcapi-media-wav-player -lcapi-message-port -lcapi-messaging-email -lcapi-messaging-messages -lcapi-network-bluetooth -lcapi-network-connection -lcapi-network-nfc -lcapi-network-smartcard -lcapi-network-wifi -lcapi-system-device -lcapi-system-info -lcapi-system-media-key -lcapi-system-runtime-info -lcapi-system-sensor -lcapi-system-system-settings -lcapi-telephony -lcapi-ui-efl-util -lcapi-ui-inputmethod-manager -lcapi-ui-inputmethod -lcapi-web-url-download -lcidn -lcontacts-service2 -lcontext -lcore-context-manager -lcore-sync-client -lcrypto -lcrypt -lc -lcurl -ldali-adaptor -ldali-core -ldali-toolkit -ldlog -ldl -lebluez -leconnman0_7x -lecore_audio -lecore_avahi -lecore_con -lecore_evas -lecore_fb -lecore_file -lecore_imf_evas -lecore_imf -lecore_input_evas -lecore_input -lecore_ipc -lecore -lecore_x -ledbus -ledje -leet -lefl-extension -lefreet_mime -lefreet -lefreet_trash -lehal -leina -leio -lelementary -lembryo -lenotify -leofono -leom -lethumb_client -lethumb -leukit -levas -lewebkit2 -lexif -lfontconfig -lfreetype -lgio-2.0 -lglib-2.0 -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -ljson-glib-1.0 -lkey-manager-client -lminicontrol-provider -lminicontrol-viewer -lminizip -lm -lnotification -lnsl -lnss_compat -lnss_dns -lnss_files -lnss_hesiod -lnss_nisplus -lnss_nis -loauth2 -loauth -lopenal -lphonenumber-utils -lprivilege-info -lpthread -lpush -lresolv -lrt -lservice-adaptor-client -lshortcut -lsqlite3 -lssl -lstorage -lstt -ltbm -lthread_db -lttrace -ltts -lutil -lvc-elm -lvc -lwidget_service -lwidget_viewer_evas -lwifi-direct -lxml2 -lz -Xlinker -rpath="/opt/usr/apps/org.tizen.telegramtizen/lib" -Werror-implicit-function-declaration
+
+build telegramtizen: build_target src/contact_selection_view.o src/contacts_common.o src/device_contacts_manager.o src/group_chat_entry_view.o src/server_requests.o src/service_client.o src/telegramtizen.o src/tg_buddy_list.o src/tg_chat_conv_view.o src/tg_db_wrapper.o src/tg_first_registration.o src/tg_login.o src/tg_registration.o src/tg_splash_screen.o db_manager/tg_db_manager.o contacts_utils/contacts-db-utils.o contacts_utils/contacts-list-utils.o contacts_utils/contacts-record-utils.o 
+build ast: phony src/contact_selection_view.o.ast src/contacts_common.o.ast src/device_contacts_manager.o.ast src/group_chat_entry_view.o.ast src/server_requests.o.ast src/service_client.o.ast src/telegramtizen.o.ast src/tg_buddy_list.o.ast src/tg_chat_conv_view.o.ast src/tg_db_wrapper.o.ast src/tg_first_registration.o.ast src/tg_login.o.ast src/tg_registration.o.ast src/tg_splash_screen.o.ast db_manager/tg_db_manager.o.ast contacts_utils/contacts-db-utils.o.ast contacts_utils/contacts-list-utils.o.ast contacts_utils/contacts-record-utils.o.ast 
+build fn: phony src/contact_selection_view.o.fn src/contacts_common.o.fn src/device_contacts_manager.o.fn src/group_chat_entry_view.o.fn src/server_requests.o.fn src/service_client.o.fn src/telegramtizen.o.fn src/tg_buddy_list.o.fn src/tg_chat_conv_view.o.fn src/tg_db_wrapper.o.fn src/tg_first_registration.o.fn src/tg_login.o.fn src/tg_registration.o.fn src/tg_splash_screen.o.fn db_manager/tg_db_manager.o.fn contacts_utils/contacts-db-utils.o.fn contacts_utils/contacts-list-utils.o.fn contacts_utils/contacts-record-utils.o.fn 
+build extfn: ext_fn src/contact_selection_view.o.fn src/contacts_common.o.fn src/device_contacts_manager.o.fn src/group_chat_entry_view.o.fn src/server_requests.o.fn src/service_client.o.fn src/telegramtizen.o.fn src/tg_buddy_list.o.fn src/tg_chat_conv_view.o.fn src/tg_db_wrapper.o.fn src/tg_first_registration.o.fn src/tg_login.o.fn src/tg_registration.o.fn src/tg_splash_screen.o.fn db_manager/tg_db_manager.o.fn contacts_utils/contacts-db-utils.o.fn contacts_utils/contacts-list-utils.o.fn contacts_utils/contacts-record-utils.o.fn  | clean_sa ast
+build sa: phony src/contact_selection_view.o.sa src/contacts_common.o.sa src/device_contacts_manager.o.sa src/group_chat_entry_view.o.sa src/server_requests.o.sa src/service_client.o.sa src/telegramtizen.o.sa src/tg_buddy_list.o.sa src/tg_chat_conv_view.o.sa src/tg_db_wrapper.o.sa src/tg_first_registration.o.sa src/tg_login.o.sa src/tg_registration.o.sa src/tg_splash_screen.o.sa db_manager/tg_db_manager.o.sa contacts_utils/contacts-db-utils.o.sa contacts_utils/contacts-list-utils.o.sa contacts_utils/contacts-record-utils.o.sa 
+build res: phony res/edje/telegram_app.edj res/edje/telegram_chat_conv.edj res/edje/telegram_tizen_login.edj res/edje/telegram_tizen_reg.edj res/edje/telegramtizen.edj
+
diff --git a/TelegramTizen/Debug/compile_commands.json b/TelegramTizen/Debug/compile_commands.json
new file mode 100644 (file)
index 0000000..21bd286
--- /dev/null
@@ -0,0 +1,71 @@
+[
+  { "directory": "/home/sandeep/workspace_2_4/TelegramTizen/Debug",
+    "command": "clang [-D_DEBUG, -I\"/home/sandeep/workspace_2_4/TelegramTizen/inc\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/tg_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/db_manager\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/TelegramTizen/src/contact_selection_view.c\"",
+    "file": "/home/sandeep/workspace_2_4/TelegramTizen/src/contact_selection_view.c" },
+  { "directory": "/home/sandeep/workspace_2_4/TelegramTizen/Debug",
+    "command": "clang [-D_DEBUG, -I\"/home/sandeep/workspace_2_4/TelegramTizen/inc\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/tg_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/db_manager\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/TelegramTizen/src/contacts_common.c\"",
+    "file": "/home/sandeep/workspace_2_4/TelegramTizen/src/contacts_common.c" },
+  { "directory": "/home/sandeep/workspace_2_4/TelegramTizen/Debug",
+    "command": "clang [-D_DEBUG, -I\"/home/sandeep/workspace_2_4/TelegramTizen/inc\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/tg_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/db_manager\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/TelegramTizen/src/device_contacts_manager.c\"",
+    "file": "/home/sandeep/workspace_2_4/TelegramTizen/src/device_contacts_manager.c" },
+  { "directory": "/home/sandeep/workspace_2_4/TelegramTizen/Debug",
+    "command": "clang [-D_DEBUG, -I\"/home/sandeep/workspace_2_4/TelegramTizen/inc\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/tg_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/db_manager\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/TelegramTizen/src/group_chat_entry_view.c\"",
+    "file": "/home/sandeep/workspace_2_4/TelegramTizen/src/group_chat_entry_view.c" },
+  { "directory": "/home/sandeep/workspace_2_4/TelegramTizen/Debug",
+    "command": "clang [-D_DEBUG, -I\"/home/sandeep/workspace_2_4/TelegramTizen/inc\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/tg_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/db_manager\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/TelegramTizen/src/server_requests.c\"",
+    "file": "/home/sandeep/workspace_2_4/TelegramTizen/src/server_requests.c" },
+  { "directory": "/home/sandeep/workspace_2_4/TelegramTizen/Debug",
+    "command": "clang [-D_DEBUG, -I\"/home/sandeep/workspace_2_4/TelegramTizen/inc\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/tg_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/db_manager\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/TelegramTizen/src/service_client.c\"",
+    "file": "/home/sandeep/workspace_2_4/TelegramTizen/src/service_client.c" },
+  { "directory": "/home/sandeep/workspace_2_4/TelegramTizen/Debug",
+    "command": "clang [-D_DEBUG, -I\"/home/sandeep/workspace_2_4/TelegramTizen/inc\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/tg_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/db_manager\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/TelegramTizen/src/telegramtizen.c\"",
+    "file": "/home/sandeep/workspace_2_4/TelegramTizen/src/telegramtizen.c" },
+  { "directory": "/home/sandeep/workspace_2_4/TelegramTizen/Debug",
+    "command": "clang [-D_DEBUG, -I\"/home/sandeep/workspace_2_4/TelegramTizen/inc\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/tg_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/db_manager\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/TelegramTizen/src/tg_buddy_list.c\"",
+    "file": "/home/sandeep/workspace_2_4/TelegramTizen/src/tg_buddy_list.c" },
+  { "directory": "/home/sandeep/workspace_2_4/TelegramTizen/Debug",
+    "command": "clang [-D_DEBUG, -I\"/home/sandeep/workspace_2_4/TelegramTizen/inc\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/tg_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/db_manager\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/TelegramTizen/src/tg_chat_conv_view.c\"",
+    "file": "/home/sandeep/workspace_2_4/TelegramTizen/src/tg_chat_conv_view.c" },
+  { "directory": "/home/sandeep/workspace_2_4/TelegramTizen/Debug",
+    "command": "clang [-D_DEBUG, -I\"/home/sandeep/workspace_2_4/TelegramTizen/inc\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/tg_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/db_manager\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/TelegramTizen/src/tg_db_wrapper.c\"",
+    "file": "/home/sandeep/workspace_2_4/TelegramTizen/src/tg_db_wrapper.c" },
+  { "directory": "/home/sandeep/workspace_2_4/TelegramTizen/Debug",
+    "command": "clang [-D_DEBUG, -I\"/home/sandeep/workspace_2_4/TelegramTizen/inc\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/tg_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/db_manager\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/TelegramTizen/src/tg_first_registration.c\"",
+    "file": "/home/sandeep/workspace_2_4/TelegramTizen/src/tg_first_registration.c" },
+  { "directory": "/home/sandeep/workspace_2_4/TelegramTizen/Debug",
+    "command": "clang [-D_DEBUG, -I\"/home/sandeep/workspace_2_4/TelegramTizen/inc\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/tg_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/db_manager\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/TelegramTizen/src/tg_login.c\"",
+    "file": "/home/sandeep/workspace_2_4/TelegramTizen/src/tg_login.c" },
+  { "directory": "/home/sandeep/workspace_2_4/TelegramTizen/Debug",
+    "command": "clang [-D_DEBUG, -I\"/home/sandeep/workspace_2_4/TelegramTizen/inc\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/tg_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/db_manager\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/TelegramTizen/src/tg_registration.c\"",
+    "file": "/home/sandeep/workspace_2_4/TelegramTizen/src/tg_registration.c" },
+  { "directory": "/home/sandeep/workspace_2_4/TelegramTizen/Debug",
+    "command": "clang [-D_DEBUG, -I\"/home/sandeep/workspace_2_4/TelegramTizen/inc\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/tg_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/db_manager\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/TelegramTizen/src/tg_splash_screen.c\"",
+    "file": "/home/sandeep/workspace_2_4/TelegramTizen/src/tg_splash_screen.c" },
+  { "directory": "/home/sandeep/workspace_2_4/TelegramTizen/Debug",
+    "command": "edje_cc [-id \"/home/sandeep/workspace_2_4/TelegramTizen/edje/images\" -id \"/home/sandeep/workspace_2_4/TelegramTizen/res/images\", -id \"$(SDK_TOOLPATH)/enventor/share/enventor/images\", -sd \"/home/sandeep/workspace_2_4/TelegramTizen/edje/sounds\", -sd \"$(SDK_TOOLPATH)/enventor/share/enventor/sounds\", -fd \"/home/sandeep/workspace_2_4/TelegramTizen/edje/fonts\", -fd \"$(SDK_TOOLPATH)/enventor/share/enventor/fonts\"] \"/home/sandeep/workspace_2_4/TelegramTizen/res/edje/telegram_app.edc\"",
+    "file": "/home/sandeep/workspace_2_4/TelegramTizen/res/edje/telegram_app.edc" },
+  { "directory": "/home/sandeep/workspace_2_4/TelegramTizen/Debug",
+    "command": "edje_cc [-id \"/home/sandeep/workspace_2_4/TelegramTizen/edje/images\" -id \"/home/sandeep/workspace_2_4/TelegramTizen/res/images\", -id \"$(SDK_TOOLPATH)/enventor/share/enventor/images\", -sd \"/home/sandeep/workspace_2_4/TelegramTizen/edje/sounds\", -sd \"$(SDK_TOOLPATH)/enventor/share/enventor/sounds\", -fd \"/home/sandeep/workspace_2_4/TelegramTizen/edje/fonts\", -fd \"$(SDK_TOOLPATH)/enventor/share/enventor/fonts\"] \"/home/sandeep/workspace_2_4/TelegramTizen/res/edje/telegram_chat_conv.edc\"",
+    "file": "/home/sandeep/workspace_2_4/TelegramTizen/res/edje/telegram_chat_conv.edc" },
+  { "directory": "/home/sandeep/workspace_2_4/TelegramTizen/Debug",
+    "command": "edje_cc [-id \"/home/sandeep/workspace_2_4/TelegramTizen/edje/images\" -id \"/home/sandeep/workspace_2_4/TelegramTizen/res/images\", -id \"$(SDK_TOOLPATH)/enventor/share/enventor/images\", -sd \"/home/sandeep/workspace_2_4/TelegramTizen/edje/sounds\", -sd \"$(SDK_TOOLPATH)/enventor/share/enventor/sounds\", -fd \"/home/sandeep/workspace_2_4/TelegramTizen/edje/fonts\", -fd \"$(SDK_TOOLPATH)/enventor/share/enventor/fonts\"] \"/home/sandeep/workspace_2_4/TelegramTizen/res/edje/telegram_tizen_login.edc\"",
+    "file": "/home/sandeep/workspace_2_4/TelegramTizen/res/edje/telegram_tizen_login.edc" },
+  { "directory": "/home/sandeep/workspace_2_4/TelegramTizen/Debug",
+    "command": "edje_cc [-id \"/home/sandeep/workspace_2_4/TelegramTizen/edje/images\" -id \"/home/sandeep/workspace_2_4/TelegramTizen/res/images\", -id \"$(SDK_TOOLPATH)/enventor/share/enventor/images\", -sd \"/home/sandeep/workspace_2_4/TelegramTizen/edje/sounds\", -sd \"$(SDK_TOOLPATH)/enventor/share/enventor/sounds\", -fd \"/home/sandeep/workspace_2_4/TelegramTizen/edje/fonts\", -fd \"$(SDK_TOOLPATH)/enventor/share/enventor/fonts\"] \"/home/sandeep/workspace_2_4/TelegramTizen/res/edje/telegram_tizen_reg.edc\"",
+    "file": "/home/sandeep/workspace_2_4/TelegramTizen/res/edje/telegram_tizen_reg.edc" },
+  { "directory": "/home/sandeep/workspace_2_4/TelegramTizen/Debug",
+    "command": "edje_cc [-id \"/home/sandeep/workspace_2_4/TelegramTizen/edje/images\" -id \"/home/sandeep/workspace_2_4/TelegramTizen/res/images\", -id \"$(SDK_TOOLPATH)/enventor/share/enventor/images\", -sd \"/home/sandeep/workspace_2_4/TelegramTizen/edje/sounds\", -sd \"$(SDK_TOOLPATH)/enventor/share/enventor/sounds\", -fd \"/home/sandeep/workspace_2_4/TelegramTizen/edje/fonts\", -fd \"$(SDK_TOOLPATH)/enventor/share/enventor/fonts\"] \"/home/sandeep/workspace_2_4/TelegramTizen/res/edje/telegramtizen.edc\"",
+    "file": "/home/sandeep/workspace_2_4/TelegramTizen/res/edje/telegramtizen.edc" },
+  { "directory": "/home/sandeep/workspace_2_4/TelegramTizen/Debug",
+    "command": "clang [-D_DEBUG, -I\"/home/sandeep/workspace_2_4/TelegramTizen/inc\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/tg_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/db_manager\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/TelegramTizen/db_manager/tg_db_manager.c\"",
+    "file": "/home/sandeep/workspace_2_4/TelegramTizen/db_manager/tg_db_manager.c" },
+  { "directory": "/home/sandeep/workspace_2_4/TelegramTizen/Debug",
+    "command": "clang [-D_DEBUG, -I\"/home/sandeep/workspace_2_4/TelegramTizen/inc\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/tg_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/db_manager\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils/contacts-db-utils.c\"",
+    "file": "/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils/contacts-db-utils.c" },
+  { "directory": "/home/sandeep/workspace_2_4/TelegramTizen/Debug",
+    "command": "clang [-D_DEBUG, -I\"/home/sandeep/workspace_2_4/TelegramTizen/inc\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/tg_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/db_manager\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils/contacts-list-utils.c\"",
+    "file": "/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils/contacts-list-utils.c" },
+  { "directory": "/home/sandeep/workspace_2_4/TelegramTizen/Debug",
+    "command": "clang [-D_DEBUG, -I\"/home/sandeep/workspace_2_4/TelegramTizen/inc\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/tg_utils\" -I\"/home/sandeep/workspace_2_4/TelegramTizen/db_manager\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils/contacts-record-utils.c\"",
+    "file": "/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils/contacts-record-utils.c" },
+]
diff --git a/TelegramTizen/Debug/contacts_utils/build.ninja b/TelegramTizen/Debug/contacts_utils/build.ninja
new file mode 100644 (file)
index 0000000..13d012f
--- /dev/null
@@ -0,0 +1,20 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+
+ctool = clang
+cflags = -D_DEBUG -I"/home/sandeep/workspace_2_4/TelegramTizen/inc" -I"/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils" -I"/home/sandeep/workspace_2_4/TelegramTizen/tg_utils" -I"/home/sandeep/workspace_2_4/TelegramTizen/db_manager" -O0 -g3 -Wall -c -fmessage-length=0 -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot="/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core" -mthumb -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2" -I"/home/sandeep/tizen-sdk-2.4/library" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include" -Werror-implicit-function-declaration
+
+build contacts_utils/contacts-db-utils.o: build_c /home/sandeep/workspace_2_4/TelegramTizen/contacts_utils/contacts-db-utils.c 
+build contacts_utils/contacts-db-utils.o.ast: build_c_ast /home/sandeep/workspace_2_4/TelegramTizen/contacts_utils/contacts-db-utils.c 
+build contacts_utils/contacts-db-utils.o.fn: build_c_fn contacts_utils/contacts-db-utils.o.ast 
+build contacts_utils/contacts-db-utils.o.sa: build_c_sa contacts_utils/contacts-db-utils.o.ast | extfn
+build contacts_utils/contacts-list-utils.o: build_c /home/sandeep/workspace_2_4/TelegramTizen/contacts_utils/contacts-list-utils.c 
+build contacts_utils/contacts-list-utils.o.ast: build_c_ast /home/sandeep/workspace_2_4/TelegramTizen/contacts_utils/contacts-list-utils.c 
+build contacts_utils/contacts-list-utils.o.fn: build_c_fn contacts_utils/contacts-list-utils.o.ast 
+build contacts_utils/contacts-list-utils.o.sa: build_c_sa contacts_utils/contacts-list-utils.o.ast | extfn
+build contacts_utils/contacts-record-utils.o: build_c /home/sandeep/workspace_2_4/TelegramTizen/contacts_utils/contacts-record-utils.c 
+build contacts_utils/contacts-record-utils.o.ast: build_c_ast /home/sandeep/workspace_2_4/TelegramTizen/contacts_utils/contacts-record-utils.c 
+build contacts_utils/contacts-record-utils.o.fn: build_c_fn contacts_utils/contacts-record-utils.o.ast 
+build contacts_utils/contacts-record-utils.o.sa: build_c_sa contacts_utils/contacts-record-utils.o.ast | extfn
diff --git a/TelegramTizen/Debug/contacts_utils/contacts-db-utils.o b/TelegramTizen/Debug/contacts_utils/contacts-db-utils.o
new file mode 100644 (file)
index 0000000..257e908
Binary files /dev/null and b/TelegramTizen/Debug/contacts_utils/contacts-db-utils.o differ
diff --git a/TelegramTizen/Debug/contacts_utils/contacts-list-utils.o b/TelegramTizen/Debug/contacts_utils/contacts-list-utils.o
new file mode 100644 (file)
index 0000000..f5d526a
Binary files /dev/null and b/TelegramTizen/Debug/contacts_utils/contacts-list-utils.o differ
diff --git a/TelegramTizen/Debug/contacts_utils/contacts-record-utils.o b/TelegramTizen/Debug/contacts_utils/contacts-record-utils.o
new file mode 100644 (file)
index 0000000..8b5b3e3
Binary files /dev/null and b/TelegramTizen/Debug/contacts_utils/contacts-record-utils.o differ
diff --git a/TelegramTizen/Debug/db_manager/build.ninja b/TelegramTizen/Debug/db_manager/build.ninja
new file mode 100644 (file)
index 0000000..0d02275
--- /dev/null
@@ -0,0 +1,12 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+
+ctool = clang
+cflags = -D_DEBUG -I"/home/sandeep/workspace_2_4/TelegramTizen/inc" -I"/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils" -I"/home/sandeep/workspace_2_4/TelegramTizen/tg_utils" -I"/home/sandeep/workspace_2_4/TelegramTizen/db_manager" -O0 -g3 -Wall -c -fmessage-length=0 -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot="/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core" -mthumb -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2" -I"/home/sandeep/tizen-sdk-2.4/library" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include" -Werror-implicit-function-declaration
+
+build db_manager/tg_db_manager.o: build_c /home/sandeep/workspace_2_4/TelegramTizen/db_manager/tg_db_manager.c 
+build db_manager/tg_db_manager.o.ast: build_c_ast /home/sandeep/workspace_2_4/TelegramTizen/db_manager/tg_db_manager.c 
+build db_manager/tg_db_manager.o.fn: build_c_fn db_manager/tg_db_manager.o.ast 
+build db_manager/tg_db_manager.o.sa: build_c_sa db_manager/tg_db_manager.o.ast | extfn
diff --git a/TelegramTizen/Debug/db_manager/tg_db_manager.o b/TelegramTizen/Debug/db_manager/tg_db_manager.o
new file mode 100644 (file)
index 0000000..dc4dbb2
Binary files /dev/null and b/TelegramTizen/Debug/db_manager/tg_db_manager.o differ
diff --git a/TelegramTizen/Debug/org.tizen.telegramtizen-1.0.0-arm.tpk b/TelegramTizen/Debug/org.tizen.telegramtizen-1.0.0-arm.tpk
new file mode 100644 (file)
index 0000000..9d9252d
Binary files /dev/null and b/TelegramTizen/Debug/org.tizen.telegramtizen-1.0.0-arm.tpk differ
diff --git a/TelegramTizen/Debug/org.tizen.telegramtizen-1.0.0-i386.tpk b/TelegramTizen/Debug/org.tizen.telegramtizen-1.0.0-i386.tpk
new file mode 100644 (file)
index 0000000..ef0069f
Binary files /dev/null and b/TelegramTizen/Debug/org.tizen.telegramtizen-1.0.0-i386.tpk differ
diff --git a/TelegramTizen/Debug/res/edje/build.ninja b/TelegramTizen/Debug/res/edje/build.ninja
new file mode 100644 (file)
index 0000000..64ab445
--- /dev/null
@@ -0,0 +1,13 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+
+edctool = edje_cc
+edcflags = -id "/home/sandeep/workspace_2_4/TelegramTizen/edje/images" -id "/home/sandeep/workspace_2_4/TelegramTizen/res/images" -id "/home/sandeep/tizen-sdk-2.4/tools/enventor/share/enventor/images" -sd "/home/sandeep/workspace_2_4/TelegramTizen/edje/sounds" -sd "/home/sandeep/tizen-sdk-2.4/tools/enventor/share/enventor/sounds" -fd "/home/sandeep/workspace_2_4/TelegramTizen/edje/fonts" -fd "/home/sandeep/tizen-sdk-2.4/tools/enventor/share/enventor/fonts"
+
+build res/edje/telegram_app.edj: build_edc /home/sandeep/workspace_2_4/TelegramTizen/res/edje/telegram_app.edc 
+build res/edje/telegram_chat_conv.edj: build_edc /home/sandeep/workspace_2_4/TelegramTizen/res/edje/telegram_chat_conv.edc 
+build res/edje/telegram_tizen_login.edj: build_edc /home/sandeep/workspace_2_4/TelegramTizen/res/edje/telegram_tizen_login.edc 
+build res/edje/telegram_tizen_reg.edj: build_edc /home/sandeep/workspace_2_4/TelegramTizen/res/edje/telegram_tizen_reg.edc 
+build res/edje/telegramtizen.edj: build_edc /home/sandeep/workspace_2_4/TelegramTizen/res/edje/telegramtizen.edc 
diff --git a/TelegramTizen/Debug/res/edje/telegram_app.edj b/TelegramTizen/Debug/res/edje/telegram_app.edj
new file mode 100644 (file)
index 0000000..21fcbf1
Binary files /dev/null and b/TelegramTizen/Debug/res/edje/telegram_app.edj differ
diff --git a/TelegramTizen/Debug/res/edje/telegram_chat_conv.edj b/TelegramTizen/Debug/res/edje/telegram_chat_conv.edj
new file mode 100644 (file)
index 0000000..98a6f63
Binary files /dev/null and b/TelegramTizen/Debug/res/edje/telegram_chat_conv.edj differ
diff --git a/TelegramTizen/Debug/res/edje/telegram_tizen_login.edj b/TelegramTizen/Debug/res/edje/telegram_tizen_login.edj
new file mode 100644 (file)
index 0000000..9d0176a
Binary files /dev/null and b/TelegramTizen/Debug/res/edje/telegram_tizen_login.edj differ
diff --git a/TelegramTizen/Debug/res/edje/telegram_tizen_reg.edj b/TelegramTizen/Debug/res/edje/telegram_tizen_reg.edj
new file mode 100644 (file)
index 0000000..9ef9347
Binary files /dev/null and b/TelegramTizen/Debug/res/edje/telegram_tizen_reg.edj differ
diff --git a/TelegramTizen/Debug/res/edje/telegramtizen.edj b/TelegramTizen/Debug/res/edje/telegramtizen.edj
new file mode 100644 (file)
index 0000000..b53d80e
Binary files /dev/null and b/TelegramTizen/Debug/res/edje/telegramtizen.edj differ
diff --git a/TelegramTizen/Debug/rules.ninja b/TelegramTizen/Debug/rules.ninja
new file mode 100644 (file)
index 0000000..e9c2479
--- /dev/null
@@ -0,0 +1,197 @@
+#################################################################################
+# C/ CPP Compilation Rules
+#################################################################################
+
+rule build_c
+  command = $ctool -MMD -MT $out -MF $out.d $pchInc $cflags -c $in -o $out
+  description = Building $out
+  depfile = $out.d
+  deps = gcc
+
+rule build_long_c
+  command = $ctool -MMD -MT $out -MF $out.d @$out.rsp -c $in -o $out
+  description = Building $out
+  depfile = $out.d
+  deps = gcc
+  rspfile = $out.rsp
+  rspfile_content = $pchInc $cflags
+
+rule build_cpp
+  command = $cpptool -MMD -MT $out -MF $out.d $pchInc $cppflags -c $in -o $out
+  description = Building $out
+  depfile = $out.d
+
+rule build_long_cpp
+  command = $cpptool -MMD -MT $out -MF $out.d @$out.rsp -c $in -o $out
+  description = Building $out
+  depfile = $out.d
+  rspfile = $out.rsp
+  rspfile_content = $pchInc $cppflags
+
+#################################################################################
+# Link Rules
+#################################################################################
+
+rule build_target
+  command = $targettool -o $out $in $userobj $libs $targetflags
+  description = Linking $out
+
+rule long_build_target
+  command = $targettool -o $out @$out.rsp
+  description = Linking $out
+  rspfile = $out.rsp
+  rspfile_content = $in $userobj $libs $targetflags
+
+build main-build: phony all
+
+#################################################################################
+# Prebuild/ Postbuild Rules
+#################################################################################
+
+rule pre_build
+  command = $prebuildcmd
+  description = Executing Prebuild Steps
+  pool = console
+
+rule post_build
+  command = $postbuildcmd
+  description = Executing Postbuild Steps
+  pool = console
+
+rule build_pch
+  command = $pchtool -x c-header -MMD -MT $out -MF $out.d $pchflags -c $in -o $out
+  description = Building $out
+  depfile = $out.d
+
+rule build_long_pch
+  command = $pchtool -x c-header -MMD -MT $out -MF $out.d $pchflags -c $in -o $out
+  description = Building $out
+  depfile = $out.d
+  rspfile = $out.rsp
+  rspfile_content = $pchflags
+
+build pre-build: pre_build
+build post-build: post_build | main-build
+
+#################################################################################
+# Secondary Output  Rules
+#################################################################################
+
+rule build_edc
+  command = $edctool -deps $out.d $edcflags $in $out
+  description = Building $out
+  depfile = $out.d
+  deps = gcc
+
+rule build_long_edc
+  command = $edctool -deps $out.d @$out.rsp $in $out
+  description = Building $out
+  depfile = $out.d
+  deps = gcc
+  rspfile = $out.rsp
+  rspfile_content = $edcflags
+
+rule build_po
+  command = $potool -o $out $in
+  description = Building $out
+
+rule build_long_po
+  command = $potool -o $out @$out.rsp
+  description = Building $out
+  rspfile = $out.rsp
+  rspfile_content = $in
+
+#################################################################################
+# AST Rules
+#################################################################################
+
+rule build_c_ast
+  command = $ctool -emit-ast -c $in -o $out $pchInc $cflags
+  description = Building $out
+
+rule build_long_c_ast
+  command = $ctool -emit-ast -c $in -o $out @$out.rsp
+  description = Building $out
+  rspfile = $out.rsp
+  rspfile_content = $pchInc $cflags
+
+rule build_cpp_ast
+  command = $cpptool -emit-ast -c $in -o $out $pchInc $cppflags
+  description = Building $out
+
+rule build_long_cpp_ast
+  command = $cpptool -emit-ast -c $in -o $out @$out.rsp
+  description = Building $out
+  rspfile = $out.rsp
+  rspfile_content = $pchInc $cppflags
+
+#################################################################################
+# FN Map Rules
+#################################################################################
+
+rule build_c_fn
+  command = clangFnMapGen -o $out -ast $in $in --
+  description = Building $out
+
+rule build_long_c_fn
+  command = clangFnMapGen -o $out -ast $in $in --
+  description = Building $out
+
+rule build_cpp_fn
+  command = clangFnMapGen -o $out -ast $in $in --
+  description = Building $out
+
+rule build_long_cpp_fn
+  command = clangFnMapGen -o $out -ast $in $in --
+  description = Building $out
+
+rule ext_fn
+  command = $shell cat $in > $sareportdir/externalFnMap.txt
+  description = Generating External Function Map
+  pool = console
+
+#################################################################################
+# SA Rules
+#################################################################################
+
+rule build_c_sa
+  command = $ctool --analyze $in -Xclang -analyzer-purge=block -Xclang -analyzer-checker=$sa_checkers -o $sareportdir
+  description = Building $out
+
+rule build_long_c_sa
+  command = $ctool --analyze $in -Xclang -analyzer-purge=block -Xclang -analyzer-checker=$sa_checkers -o $sareportdir
+  description = Building $out
+
+rule build_cpp_sa
+  command = $cpptool --analyze $in -Xclang -analyzer-purge=block -Xclang -analyzer-checker=$sa_checkers -o $sareportdir
+  description = Building $out
+
+rule build_long_cpp_sa
+  command = $cpptool --analyze $in -Xclang -analyzer-purge=block -Xclang -analyzer-checker=$sa_checkers -o $sareportdir
+  description = Building $out
+
+#################################################################################
+# Clean Rules
+#################################################################################
+
+rule clean_all
+  command = ninja -t clean
+  description = Cleaning build files ...
+build clean: clean_all
+
+rule sa_report_clean
+  command = rm -rf $sareportdir/*.xml
+  description = Cleaning SA Report files ...
+build clean_sa: sa_report_clean
+
+#################################################################################
+# Compilation DB Step
+#################################################################################
+
+rule compdb_json
+  command = $shell ninja -t compdb cc cxx > $out
+  description = Generating $out
+build $builddir/compile_commands.json: compdb_json
+build compdb: phony $builddir/compile_commands.json
+
+
diff --git a/TelegramTizen/Debug/src/build.ninja b/TelegramTizen/Debug/src/build.ninja
new file mode 100644 (file)
index 0000000..c862882
--- /dev/null
@@ -0,0 +1,64 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+
+ctool = clang
+cflags = -D_DEBUG -I"/home/sandeep/workspace_2_4/TelegramTizen/inc" -I"/home/sandeep/workspace_2_4/TelegramTizen/contacts_utils" -I"/home/sandeep/workspace_2_4/TelegramTizen/tg_utils" -I"/home/sandeep/workspace_2_4/TelegramTizen/db_manager" -O0 -g3 -Wall -c -fmessage-length=0 -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot="/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core" -mthumb -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2" -I"/home/sandeep/tizen-sdk-2.4/library" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include" -Werror-implicit-function-declaration
+
+build src/contact_selection_view.o: build_c /home/sandeep/workspace_2_4/TelegramTizen/src/contact_selection_view.c 
+build src/contact_selection_view.o.ast: build_c_ast /home/sandeep/workspace_2_4/TelegramTizen/src/contact_selection_view.c 
+build src/contact_selection_view.o.fn: build_c_fn src/contact_selection_view.o.ast 
+build src/contact_selection_view.o.sa: build_c_sa src/contact_selection_view.o.ast | extfn
+build src/contacts_common.o: build_c /home/sandeep/workspace_2_4/TelegramTizen/src/contacts_common.c 
+build src/contacts_common.o.ast: build_c_ast /home/sandeep/workspace_2_4/TelegramTizen/src/contacts_common.c 
+build src/contacts_common.o.fn: build_c_fn src/contacts_common.o.ast 
+build src/contacts_common.o.sa: build_c_sa src/contacts_common.o.ast | extfn
+build src/device_contacts_manager.o: build_c /home/sandeep/workspace_2_4/TelegramTizen/src/device_contacts_manager.c 
+build src/device_contacts_manager.o.ast: build_c_ast /home/sandeep/workspace_2_4/TelegramTizen/src/device_contacts_manager.c 
+build src/device_contacts_manager.o.fn: build_c_fn src/device_contacts_manager.o.ast 
+build src/device_contacts_manager.o.sa: build_c_sa src/device_contacts_manager.o.ast | extfn
+build src/group_chat_entry_view.o: build_c /home/sandeep/workspace_2_4/TelegramTizen/src/group_chat_entry_view.c 
+build src/group_chat_entry_view.o.ast: build_c_ast /home/sandeep/workspace_2_4/TelegramTizen/src/group_chat_entry_view.c 
+build src/group_chat_entry_view.o.fn: build_c_fn src/group_chat_entry_view.o.ast 
+build src/group_chat_entry_view.o.sa: build_c_sa src/group_chat_entry_view.o.ast | extfn
+build src/server_requests.o: build_c /home/sandeep/workspace_2_4/TelegramTizen/src/server_requests.c 
+build src/server_requests.o.ast: build_c_ast /home/sandeep/workspace_2_4/TelegramTizen/src/server_requests.c 
+build src/server_requests.o.fn: build_c_fn src/server_requests.o.ast 
+build src/server_requests.o.sa: build_c_sa src/server_requests.o.ast | extfn
+build src/service_client.o: build_c /home/sandeep/workspace_2_4/TelegramTizen/src/service_client.c 
+build src/service_client.o.ast: build_c_ast /home/sandeep/workspace_2_4/TelegramTizen/src/service_client.c 
+build src/service_client.o.fn: build_c_fn src/service_client.o.ast 
+build src/service_client.o.sa: build_c_sa src/service_client.o.ast | extfn
+build src/telegramtizen.o: build_c /home/sandeep/workspace_2_4/TelegramTizen/src/telegramtizen.c 
+build src/telegramtizen.o.ast: build_c_ast /home/sandeep/workspace_2_4/TelegramTizen/src/telegramtizen.c 
+build src/telegramtizen.o.fn: build_c_fn src/telegramtizen.o.ast 
+build src/telegramtizen.o.sa: build_c_sa src/telegramtizen.o.ast | extfn
+build src/tg_buddy_list.o: build_c /home/sandeep/workspace_2_4/TelegramTizen/src/tg_buddy_list.c 
+build src/tg_buddy_list.o.ast: build_c_ast /home/sandeep/workspace_2_4/TelegramTizen/src/tg_buddy_list.c 
+build src/tg_buddy_list.o.fn: build_c_fn src/tg_buddy_list.o.ast 
+build src/tg_buddy_list.o.sa: build_c_sa src/tg_buddy_list.o.ast | extfn
+build src/tg_chat_conv_view.o: build_c /home/sandeep/workspace_2_4/TelegramTizen/src/tg_chat_conv_view.c 
+build src/tg_chat_conv_view.o.ast: build_c_ast /home/sandeep/workspace_2_4/TelegramTizen/src/tg_chat_conv_view.c 
+build src/tg_chat_conv_view.o.fn: build_c_fn src/tg_chat_conv_view.o.ast 
+build src/tg_chat_conv_view.o.sa: build_c_sa src/tg_chat_conv_view.o.ast | extfn
+build src/tg_db_wrapper.o: build_c /home/sandeep/workspace_2_4/TelegramTizen/src/tg_db_wrapper.c 
+build src/tg_db_wrapper.o.ast: build_c_ast /home/sandeep/workspace_2_4/TelegramTizen/src/tg_db_wrapper.c 
+build src/tg_db_wrapper.o.fn: build_c_fn src/tg_db_wrapper.o.ast 
+build src/tg_db_wrapper.o.sa: build_c_sa src/tg_db_wrapper.o.ast | extfn
+build src/tg_first_registration.o: build_c /home/sandeep/workspace_2_4/TelegramTizen/src/tg_first_registration.c 
+build src/tg_first_registration.o.ast: build_c_ast /home/sandeep/workspace_2_4/TelegramTizen/src/tg_first_registration.c 
+build src/tg_first_registration.o.fn: build_c_fn src/tg_first_registration.o.ast 
+build src/tg_first_registration.o.sa: build_c_sa src/tg_first_registration.o.ast | extfn
+build src/tg_login.o: build_c /home/sandeep/workspace_2_4/TelegramTizen/src/tg_login.c 
+build src/tg_login.o.ast: build_c_ast /home/sandeep/workspace_2_4/TelegramTizen/src/tg_login.c 
+build src/tg_login.o.fn: build_c_fn src/tg_login.o.ast 
+build src/tg_login.o.sa: build_c_sa src/tg_login.o.ast | extfn
+build src/tg_registration.o: build_c /home/sandeep/workspace_2_4/TelegramTizen/src/tg_registration.c 
+build src/tg_registration.o.ast: build_c_ast /home/sandeep/workspace_2_4/TelegramTizen/src/tg_registration.c 
+build src/tg_registration.o.fn: build_c_fn src/tg_registration.o.ast 
+build src/tg_registration.o.sa: build_c_sa src/tg_registration.o.ast | extfn
+build src/tg_splash_screen.o: build_c /home/sandeep/workspace_2_4/TelegramTizen/src/tg_splash_screen.c 
+build src/tg_splash_screen.o.ast: build_c_ast /home/sandeep/workspace_2_4/TelegramTizen/src/tg_splash_screen.c 
+build src/tg_splash_screen.o.fn: build_c_fn src/tg_splash_screen.o.ast 
+build src/tg_splash_screen.o.sa: build_c_sa src/tg_splash_screen.o.ast | extfn
diff --git a/TelegramTizen/Debug/src/contact_selection_view.o b/TelegramTizen/Debug/src/contact_selection_view.o
new file mode 100644 (file)
index 0000000..5c836e4
Binary files /dev/null and b/TelegramTizen/Debug/src/contact_selection_view.o differ
diff --git a/TelegramTizen/Debug/src/contacts_common.o b/TelegramTizen/Debug/src/contacts_common.o
new file mode 100644 (file)
index 0000000..73d8e21
Binary files /dev/null and b/TelegramTizen/Debug/src/contacts_common.o differ
diff --git a/TelegramTizen/Debug/src/device_contacts_manager.o b/TelegramTizen/Debug/src/device_contacts_manager.o
new file mode 100644 (file)
index 0000000..3f2c6f1
Binary files /dev/null and b/TelegramTizen/Debug/src/device_contacts_manager.o differ
diff --git a/TelegramTizen/Debug/src/group_chat_entry_view.o b/TelegramTizen/Debug/src/group_chat_entry_view.o
new file mode 100644 (file)
index 0000000..cdf2732
Binary files /dev/null and b/TelegramTizen/Debug/src/group_chat_entry_view.o differ
diff --git a/TelegramTizen/Debug/src/server_requests.o b/TelegramTizen/Debug/src/server_requests.o
new file mode 100644 (file)
index 0000000..990fe85
Binary files /dev/null and b/TelegramTizen/Debug/src/server_requests.o differ
diff --git a/TelegramTizen/Debug/src/service_client.o b/TelegramTizen/Debug/src/service_client.o
new file mode 100644 (file)
index 0000000..4b53ef0
Binary files /dev/null and b/TelegramTizen/Debug/src/service_client.o differ
diff --git a/TelegramTizen/Debug/src/telegramtizen.o b/TelegramTizen/Debug/src/telegramtizen.o
new file mode 100644 (file)
index 0000000..6e09ab3
Binary files /dev/null and b/TelegramTizen/Debug/src/telegramtizen.o differ
diff --git a/TelegramTizen/Debug/src/tg_buddy_list.o b/TelegramTizen/Debug/src/tg_buddy_list.o
new file mode 100644 (file)
index 0000000..2cf66c5
Binary files /dev/null and b/TelegramTizen/Debug/src/tg_buddy_list.o differ
diff --git a/TelegramTizen/Debug/src/tg_chat_conv_view.o b/TelegramTizen/Debug/src/tg_chat_conv_view.o
new file mode 100644 (file)
index 0000000..647fa75
Binary files /dev/null and b/TelegramTizen/Debug/src/tg_chat_conv_view.o differ
diff --git a/TelegramTizen/Debug/src/tg_db_wrapper.o b/TelegramTizen/Debug/src/tg_db_wrapper.o
new file mode 100644 (file)
index 0000000..e8a010e
Binary files /dev/null and b/TelegramTizen/Debug/src/tg_db_wrapper.o differ
diff --git a/TelegramTizen/Debug/src/tg_first_registration.o b/TelegramTizen/Debug/src/tg_first_registration.o
new file mode 100644 (file)
index 0000000..cf636d9
Binary files /dev/null and b/TelegramTizen/Debug/src/tg_first_registration.o differ
diff --git a/TelegramTizen/Debug/src/tg_login.o b/TelegramTizen/Debug/src/tg_login.o
new file mode 100644 (file)
index 0000000..34cdc7b
Binary files /dev/null and b/TelegramTizen/Debug/src/tg_login.o differ
diff --git a/TelegramTizen/Debug/src/tg_registration.o b/TelegramTizen/Debug/src/tg_registration.o
new file mode 100644 (file)
index 0000000..2816061
Binary files /dev/null and b/TelegramTizen/Debug/src/tg_registration.o differ
diff --git a/TelegramTizen/Debug/src/tg_splash_screen.o b/TelegramTizen/Debug/src/tg_splash_screen.o
new file mode 100644 (file)
index 0000000..2f529a8
Binary files /dev/null and b/TelegramTizen/Debug/src/tg_splash_screen.o differ
diff --git a/TelegramTizen/Debug/target.ninja b/TelegramTizen/Debug/target.ninja
new file mode 100644 (file)
index 0000000..7c8b2b2
--- /dev/null
@@ -0,0 +1,2 @@
+build all: phony telegramtizen res
+default all
diff --git a/TelegramTizen/Debug/telegramtizen b/TelegramTizen/Debug/telegramtizen
new file mode 100755 (executable)
index 0000000..97ee1d3
Binary files /dev/null and b/TelegramTizen/Debug/telegramtizen differ
diff --git a/TelegramTizen/contacts_utils/contacts-db-utils.c b/TelegramTizen/contacts_utils/contacts-db-utils.c
new file mode 100644 (file)
index 0000000..790cf7b
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "contacts-db-utils.h"
+
+#include "logger.h"
+
+#include <contacts.h>
+
+static bool is_connected = false;
+
+bool sc_db_utils_connect()
+{
+    if(!is_connected)
+    {
+        is_connected = sc_db_utils_is_success(contacts_connect());
+    }
+    return is_connected;
+}
+
+bool sc_db_utils_disconnect()
+{
+    if(is_connected)
+    {
+        is_connected = !sc_db_utils_is_success(contacts_disconnect());
+    }
+    return !is_connected;
+}
+
+bool sc_db_utils_is_connected()
+{
+    return is_connected;
+}
+
+bool sc_db_utils_is_success(int err_code)
+{
+#ifdef _DEBUG
+
+    if(err_code == CONTACTS_ERROR_NONE)
+    {
+        return true;
+    }
+    else
+    {
+        const char *error_message = NULL;
+        switch(err_code)
+        {
+        case CONTACTS_ERROR_OUT_OF_MEMORY:
+            error_message = "Out of memory";
+            break;
+        case CONTACTS_ERROR_INVALID_PARAMETER:
+            error_message = "Invalid parameter";
+            break;
+        case CONTACTS_ERROR_FILE_NO_SPACE:
+            error_message = "File system is full";
+            break;
+        case CONTACTS_ERROR_NO_DATA:
+            error_message = "Requested data does not exist";
+            break;
+        case CONTACTS_ERROR_PERMISSION_DENIED:
+            error_message = "Permission denied";
+            break;
+        case CONTACTS_ERROR_DB:
+            error_message = "Unknown DB error, make sure that connection was established";
+            break;
+        case CONTACTS_ERROR_IPC_NOT_AVALIABLE:
+            error_message = "IPC server is not available";
+            break;
+        case CONTACTS_ERROR_IPC:
+            error_message = "Unknown IPC error";
+            break;
+        case CONTACTS_ERROR_SYSTEM:
+            error_message = "System error";
+            break;
+        case CONTACTS_ERROR_INTERNAL:
+            error_message = "Internal error";
+            break;
+        default:
+            error_message = "Unknown error";
+            break;
+        }
+
+        ERR("Contacts database error %d: %s", err_code, error_message);
+        return false;
+    }
+#else
+    return err_code == CONTACTS_ERROR_NONE;
+#endif /* _DEBUG */
+}
diff --git a/TelegramTizen/contacts_utils/contacts-db-utils.h b/TelegramTizen/contacts_utils/contacts-db-utils.h
new file mode 100644 (file)
index 0000000..49f3f4f
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __DATABASE_H__
+#define __DATABASE_H__
+
+#include <stdbool.h>
+
+/**
+ * @brief Connect to database
+ * @return true if success, otherwise false
+ */
+bool sc_db_utils_connect();
+
+/**
+ * @brief Disconnect from database
+ * @return true if success, otherwise false
+ */
+bool sc_db_utils_disconnect();
+
+/**
+ * @brief Check is connected to database
+ * @return true if connected, otherwise false
+ */
+bool sc_db_utils_is_connected();
+
+/**
+ * @brief Check database error code
+ * @param[in]   err_code    Error code
+ * @return true if @a err_code == CONTACTS_ERROR_NONE, otherwise false
+ */
+bool sc_db_utils_is_success(int err_code);
+
+#endif /* __DATABASE_H__ */
diff --git a/TelegramTizen/contacts_utils/contacts-list-utils.c b/TelegramTizen/contacts_utils/contacts-list-utils.c
new file mode 100644 (file)
index 0000000..9929080
--- /dev/null
@@ -0,0 +1,143 @@
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "contacts-list-utils.h"
+
+#include "contacts-db-utils.h"
+#include "logger.h"
+
+static contacts_filter_h _get_filter_with_str_field(const char *table_uri, unsigned int filter_field, const char *str_val);
+static contacts_filter_h _get_filter_with_int_field(const char *table_uri, unsigned int filter_field, int int_val);
+static contacts_filter_h _get_filter_with_bool_field(const char *table_uri, unsigned int filter_field, bool bool_val);
+
+static contacts_filter_h _get_filter_with_str_field(const char *table_uri, unsigned int filter_field, const char *str_val)
+{
+    RETVM_IF(NULL == table_uri, NULL, "table_uri is null");
+    RETVM_IF(NULL == str_val, NULL, "value is null");
+    contacts_filter_h filter = NULL;
+
+    if( !(sc_db_utils_is_success(contacts_filter_create(table_uri, &filter))
+     && sc_db_utils_is_success(contacts_filter_add_str(filter, filter_field, CONTACTS_MATCH_FULLSTRING, str_val))))
+    {
+        contacts_filter_destroy(filter);
+        filter = NULL;
+    }
+    return filter;
+}
+
+static contacts_filter_h _get_filter_with_int_field(const char *table_uri, unsigned int filter_field, int int_val)
+{
+    RETVM_IF(NULL == table_uri, NULL, "table_uri is null");
+    contacts_filter_h filter = NULL;
+
+    if( !(sc_db_utils_is_success(contacts_filter_create(table_uri, &filter))
+     && sc_db_utils_is_success(contacts_filter_add_int(filter, filter_field, CONTACTS_MATCH_EQUAL, int_val))))
+    {
+        contacts_filter_destroy(filter);
+        filter = NULL;
+    }
+    return filter;
+}
+
+static contacts_filter_h _get_filter_with_bool_field(const char *table_uri, unsigned int filter_field, bool bool_val)
+{
+    RETVM_IF(NULL == table_uri, NULL, "table_uri is null");
+    contacts_filter_h filter = NULL;
+
+    if( !(sc_db_utils_is_success(contacts_filter_create(table_uri, &filter))
+     && sc_db_utils_is_success(contacts_filter_add_bool(filter, filter_field, bool_val))))
+    {
+        contacts_filter_destroy(filter);
+        filter = NULL;
+    }
+    return filter;
+}
+
+contacts_list_h sc_list_utils_run_query(const char *table_uri, contacts_filter_h filter)
+{
+    RETVM_IF(!sc_db_utils_is_connected(), NULL, "not connected to DB");
+    RETVM_IF(NULL == table_uri, NULL, "table_uri is null");
+    RETVM_IF(NULL == filter, NULL, "filter is null");
+    contacts_list_h  list  = NULL;
+    contacts_query_h query       = NULL;
+    if( sc_db_utils_is_success(contacts_query_create(table_uri, &query))
+     && sc_db_utils_is_success(contacts_query_set_filter(query, filter)))
+    {
+        if(!sc_db_utils_is_success(contacts_db_get_records_with_query(query, 0, 0, &list)))
+        {
+            ERR("Error getting records list");
+            contacts_list_destroy(list, true);
+            list = NULL;
+        }
+        contacts_query_destroy(query);
+    }
+    return list;
+}
+
+contacts_list_h sc_list_utils_get_records_list_str_filter(const char *table_uri,
+        unsigned filter_field, const char *filter_val)
+{
+    RETVM_IF(NULL == table_uri, NULL, "table_uri is null");
+    RETVM_IF(NULL == filter_val, NULL, "filter_val is null");
+
+    RETVM_IF(!sc_db_utils_is_connected(), NULL, "Not connected to DB");
+    contacts_list_h     list   = NULL;
+    contacts_filter_h   filter = _get_filter_with_str_field(table_uri, filter_field, filter_val);
+
+    if(filter)
+    {
+        list = sc_list_utils_run_query(table_uri, filter);
+
+        contacts_filter_destroy(filter);
+    }
+    return list;
+}
+
+contacts_list_h sc_list_utils_get_records_list_int_filter(const char *table_uri,
+        unsigned filter_field, int filter_val)
+{
+    RETVM_IF(NULL == table_uri, NULL, "table_uri is null");
+
+    RETVM_IF(!sc_db_utils_is_connected(), NULL, "Not connected to DB");
+    contacts_list_h     list   = NULL;
+    contacts_filter_h   filter = _get_filter_with_int_field(table_uri, filter_field, filter_val);
+
+    if(filter)
+    {
+        list = sc_list_utils_run_query(table_uri, filter);
+
+        contacts_filter_destroy(filter);
+    }
+    return list;
+}
+
+contacts_list_h sc_list_utils_get_records_list_bool_filter(const char *table_uri,
+        unsigned filter_field, bool filter_val)
+{
+    RETVM_IF(NULL == table_uri, NULL, "table_uri is null");
+
+    RETVM_IF(!sc_db_utils_is_connected(), NULL, "Not connected to DB");
+    contacts_list_h     list   = NULL;
+    contacts_filter_h   filter = _get_filter_with_bool_field(table_uri, filter_field, filter_val);
+
+    if(filter)
+    {
+        list = sc_list_utils_run_query(table_uri, filter);
+
+        contacts_filter_destroy(filter);
+    }
+    return list;
+}
diff --git a/TelegramTizen/contacts_utils/contacts-list-utils.h b/TelegramTizen/contacts_utils/contacts-list-utils.h
new file mode 100644 (file)
index 0000000..15859ae
--- /dev/null
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __LIST_H__
+#define __LIST_H__
+
+#include <contacts.h>
+
+#define CONTACTS_LIST_FOREACH(list, record) \
+    bool success = (contacts_list_get_current_record_p(list, &record) == CONTACTS_ERROR_NONE); \
+    for( ; success; \
+        success = ((contacts_list_next(list) == CONTACTS_ERROR_NONE) \
+        && (contacts_list_get_current_record_p(list, &record) == CONTACTS_ERROR_NONE)) \
+        )
+
+/**
+ * @brief Execute query
+ * @remark return value MUST be destroyed with contacts_list_destroy by you
+ * @param[in]   table_uri       URI to DB table
+ * @param[in]   filter          Filter for query
+ * @return list on success, otherwise NULL
+ */
+contacts_list_h sc_list_utils_run_query(const char *table_uri, contacts_filter_h filter);
+
+/**
+ *@brief Retrieves record list from contacts DB
+ *@remark return value MUST be destroyed with contacts_list_destroy by you
+ *@param[in]    table_uri       URI to table
+ *@param[in]    filter_field    Filterable field of table
+ *@param[in]    filter_val      Value of filterable field @a filter_field
+ *@return records list on success, otherwise NULL
+ */
+contacts_list_h sc_list_utils_get_records_list_str_filter(const char *table_uri,
+        unsigned filter_field, const char *filter_val);
+
+/**
+ *@brief Retrieves record list from contacts DB
+ *@remark return value MUST be destroyed with contacts_list_destroy by you
+ *@param[in]    table_uri       URI to table
+ *@param[in]    filter_field    Filterable field of table
+ *@param[in]    filter_val      Value of filterable field @a filter_field
+ *@return records list on success, otherwise NULL
+ */
+contacts_list_h sc_list_utils_get_records_list_int_filter(const char *table_uri,
+        unsigned filter_field, int filter_val);
+
+/**
+ *@brief Retrieves record list from contacts DB
+ *@remark return value MUST be destroyed with contacts_list_destroy by you
+ *@param[in]    table_uri       URI to table
+ *@param[in]    filter_field    Filterable field of table
+ *@param[in]    filter_val      Value of filterable field @a filter_field
+ *@return records list on success, otherwise NULL
+ */
+contacts_list_h sc_list_utils_get_records_list_bool_filter(const char *table_uri,
+        unsigned filter_field, bool filter_val);
+
+#endif /* __LIST_H__ */
diff --git a/TelegramTizen/contacts_utils/contacts-record-utils.c b/TelegramTizen/contacts_utils/contacts-record-utils.c
new file mode 100644 (file)
index 0000000..b097cac
--- /dev/null
@@ -0,0 +1,106 @@
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "contacts-record-utils.h"
+#include "contacts-db-utils.h"
+#include "logger.h"
+
+contacts_record_h sc_record_utils_get_child_record(contacts_record_h parent_record, unsigned property_id, const char *child_table_uri)
+{
+    RETVM_IF(!sc_db_utils_is_connected(), NULL, "not connected to DB");
+    RETVM_IF(NULL == parent_record, NULL, "contact_record is null");
+    RETVM_IF(NULL == child_table_uri, NULL, "child_table_uri is null");
+    int count = 0;
+    contacts_record_h child_record = NULL;
+    if(sc_db_utils_is_success(contacts_record_get_child_record_count(parent_record, property_id, &count)))
+    {
+        if(count)
+        {
+            sc_db_utils_is_success(contacts_record_get_child_record_at_p(parent_record, property_id, 0, &child_record));
+        }
+        else
+        {
+            if(sc_db_utils_is_success(contacts_record_create(child_table_uri, &child_record)))
+            {
+                if(!sc_db_utils_is_success(contacts_record_add_child_record(parent_record, property_id, child_record)))
+                {
+                    contacts_record_destroy(child_record, true);
+                    child_record = NULL;
+                }
+            }
+        }
+    }
+    return child_record;
+}
+
+bool sc_record_utils_get_child_str_p(contacts_record_h parent_record, unsigned parent_property_id, unsigned child_property_id, char **value)
+{
+    RETVM_IF(NULL == parent_record, false, "parent record is null");
+    RETVM_IF(NULL == value, false, "pointer to value is null");
+    contacts_record_h child_record = NULL;
+    char *temp_value = NULL;
+    bool result = sc_db_utils_is_success(contacts_record_get_child_record_at_p(parent_record, parent_property_id, 0, &child_record))
+     && sc_db_utils_is_success(contacts_record_get_str_p(child_record, child_property_id, &temp_value));
+    if(result)
+    {
+        *value = temp_value;
+    }
+    return result;
+}
+
+bool sc_record_utils_get_child_int(contacts_record_h parent_record, unsigned parent_property_id, unsigned child_property_id, int *value)
+{
+    RETVM_IF(NULL == parent_record, false, "parent record is null");
+    RETVM_IF(NULL == value, false, "pointer to value is null");
+    contacts_record_h child_record = NULL;
+    int temp_value = 0;
+    bool result = sc_db_utils_is_success(contacts_record_get_child_record_at_p(parent_record, parent_property_id, 0, &child_record))
+             && sc_db_utils_is_success(contacts_record_get_int(child_record, child_property_id, &temp_value));
+    if(result)
+    {
+        *value = temp_value;
+    }
+    return result;
+}
+
+bool sc_record_utils_set_child_str(contacts_record_h contact_record,
+        unsigned parent_property, const char* child_uri, unsigned child_property, const char *str_val)
+{
+    RETVM_IF(!sc_db_utils_is_connected(), false, "not connected to DB");
+    RETVM_IF(NULL == str_val, false, "name is null");
+    RETVM_IF(NULL == contact_record, false, "contact_record is null");
+    bool result = false;
+    contacts_record_h child_record = sc_record_utils_get_child_record(contact_record, parent_property, child_uri);
+    if(child_record)
+    {
+        result = sc_db_utils_is_success(contacts_record_set_str(child_record, child_property, str_val));
+    }
+    return result;
+}
+
+bool sc_record_utils_set_child_int(contacts_record_h contact_record,
+        unsigned parent_property, const char *child_uri, unsigned child_property, int int_val)
+{
+    RETVM_IF(!sc_db_utils_is_connected(), false, "not connected to DB");
+    RETVM_IF(NULL == contact_record, false, "contact_record is null");
+    bool result = false;
+    contacts_record_h child_record = sc_record_utils_get_child_record(contact_record, parent_property, child_uri);
+    if(child_record)
+    {
+        result = sc_db_utils_is_success(contacts_record_set_int(child_record, child_property, int_val));
+    }
+    return result;
+}
diff --git a/TelegramTizen/contacts_utils/contacts-record-utils.h b/TelegramTizen/contacts_utils/contacts-record-utils.h
new file mode 100644 (file)
index 0000000..506476e
--- /dev/null
@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef __RECORD_H__
+#define __RECORD_H__
+
+#include <contacts.h>
+
+/**
+ * @brief Gets child record
+ * @remark if child record is not exist, new child record will be created
+ * @remark return value MUST NOT be destroyed by you
+ * @param[in]       parent_record       Handle to parent record
+ * @param[in]       property_id         Id of foreign key in parent table
+ * @param[in]       child_table_uri     URI of child table
+ * return Handle to child record if success, otherwise NULL
+ */
+contacts_record_h sc_record_utils_get_child_record(contacts_record_h parent_record, unsigned property_id, const char *child_table_uri);
+
+/**
+ * @brief Gets string value from child record if it exist
+ * @remark @a value MUST NOT be destroyed by you
+ * @param[in]       parent_record       Parent record
+ * @param[in]       parent_property_id  ID of foreign key in parent table
+ * @param[in]       child_property_id   ID of field in child table, where store string value
+ * @param[out]      value               The value to be returned
+ * @return true if success, otherwise false
+ */
+bool sc_record_utils_get_child_str_p(contacts_record_h parent_record, unsigned parent_property_id, unsigned child_property_id, char **value);
+
+/**
+ * @brief Gets integer value from child record if it exist
+ * @param[in]       parent_record       Parent record
+ * @param[in]       parent_property_id  ID of foreign key in parent table
+ * @param[in]       child_property_id   ID of field in child table, where store integer value
+ * @param[out]      value               The value to be returned
+ * @return true if success, otherwise false
+ */
+bool sc_record_utils_get_child_int(contacts_record_h parent_record, unsigned parent_property_id, unsigned child_property_id, int *value);
+
+/**
+ * @brief Sets string value to child record
+ * @param[in]       parent_record       Parent record
+ * @param[in]       parent_property     ID of foreign key in parent table
+ * @param[in]       child_uri           URI of child table
+ * @param[in]       child_property      ID of field in child table
+ * @param[in]       str_val             Passed string value
+ * @return true if success, otherwise false
+ */
+bool sc_record_utils_set_child_str(contacts_record_h parent_record,
+        unsigned parent_property, const char* child_uri, unsigned child_property, const char *str_val);
+
+/**
+ * @brief Sets integer value to child record
+ * @param[in]       parent_record       Parent record
+ * @param[in]       parent_property     ID of foreign key in parent table
+ * @param[in]       child_uri           URI of child table
+ * @param[in]       child_property      ID of field in child table
+ * @param[in]       int_val             Passed integer value
+ * @return true if success, otherwise false
+ */
+bool sc_record_utils_set_child_int(contacts_record_h parent_record,
+        unsigned parent_property, const char *child_uri, unsigned child_property, int int_val);
+
+#endif /* __RECORD_H__ */
diff --git a/TelegramTizen/db_manager/tg_db_manager.c b/TelegramTizen/db_manager/tg_db_manager.c
new file mode 100644 (file)
index 0000000..31bcc2e
--- /dev/null
@@ -0,0 +1,565 @@
+/*
+ * tg_db_manager.c
+ *
+ *  Created on: Jun 1, 2015
+ *      Author: sandeep
+ */
+
+#include "tg_db_manager.h"
+#include <malloc.h>
+#include <string.h>
+
+
+sqlite3* create_database(char* database_name)
+{
+       if(!database_name)
+               return NULL;
+
+       int ret;
+       sqlite3 *db;
+       ret = sqlite3_open(database_name, &db);
+       //ret = sqlite3_open_v2(database_name, &db, SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE, NULL);
+       if(ret) {
+               return NULL;
+       }
+       return db;
+}
+
+Eina_Bool create_table(sqlite3* db, const char* table_name, Eina_List* column_names, Eina_List* column_types)
+{
+       if(!db || !table_name || ! column_names || !column_types) {
+               return EINA_FALSE;
+       }
+
+       int ret = 0 ;
+       char* err_msg = 0;
+       int col_count = eina_list_count(column_names);
+
+       int str_len = strlen("CREATE TABLE IF NOT EXISTS ") + strlen(table_name) + strlen("(") + 1;
+       char* var_query = (char*)malloc(str_len);
+       strcpy(var_query,"CREATE TABLE IF NOT EXISTS ");
+       strcat(var_query, table_name);
+       strcat(var_query, "(");
+
+       for(int col = 0; col < col_count ; col++) {
+               char* col_name = eina_list_nth(column_names, col);
+               var_query = realloc(var_query, strlen(var_query)+strlen(col_name) + 1);
+               strcat(var_query, col_name);
+               var_query = realloc(var_query, strlen(var_query)+strlen(" ") + 1);
+               strcat(var_query, " ");
+               char* col_type = eina_list_nth(column_types, col);
+               var_query = realloc(var_query, strlen(var_query)+strlen(col_type) + 1);
+               strcat(var_query, col_type);
+               if(col < col_count - 1){
+                       var_query = realloc(var_query, strlen(var_query) + 2);
+                       strcat(var_query, ",");
+               } else {
+                       var_query = realloc(var_query, strlen(var_query) + 3);
+                       strcat(var_query, ");");
+               }
+       }
+
+       ret = sqlite3_exec(db,var_query, NULL,(void*)db, &err_msg);
+       if( ret != SQLITE_OK ){
+               sqlite3_free(err_msg);
+               return EINA_FALSE;
+       }
+       return EINA_TRUE;
+}
+
+Eina_Bool insert_table(sqlite3* db, const char* table_name, Eina_List* column_names, Eina_List* column_types, Eina_List* column_values)
+{
+       if(!db || !table_name || ! column_names || !column_types || !column_values) {
+               return EINA_FALSE;
+       }
+
+       int ret = 0 ;
+       char* err_msg = 0;
+       int col_count = eina_list_count(column_names);
+
+       int str_len = strlen("INSERT INTO ") + strlen(table_name) + strlen("(") + 1;
+       char* var_query = (char*)malloc(str_len);
+       strcpy(var_query,"INSERT INTO ");
+       strcat(var_query, table_name);
+       strcat(var_query, "(");
+
+       for(int col = 0; col < col_count ; col++) {
+
+               char* col_name = eina_list_nth(column_names, col);
+               var_query = realloc(var_query, strlen(var_query)+strlen(col_name) + 1);
+               strcat(var_query, col_name);
+
+               if(col < col_count - 1){
+                       var_query = realloc(var_query, strlen(var_query) + 2);
+                       strcat(var_query, ",");
+               } else {
+                       var_query = realloc(var_query, strlen(var_query) + strlen(") VALUES (") + 1);
+                       strcat(var_query, ") VALUES (");
+               }
+       }
+
+       int col_val_count = eina_list_count(column_values);
+
+       for(int col = 0; col < col_val_count ; col++) {
+
+               char* col_type = eina_list_nth(column_types, col);
+               char* col_value = NULL;
+               if(!strcmp(col_type, "INTEGER") || !strcmp(col_type, "INTEGER PRIMARY KEY NOT NULL")) {
+                       int* tmp_value = eina_list_nth(column_values, col);
+
+#if 0
+                       long long val = *tmp_value;
+                       col_value = (char*)malloc(50);
+                       //sprintf(col_value, "%lld", *tmp_value);
+                       sprintf(col_value, "%lld", val);
+#endif
+
+                       int act_val = (*tmp_value);
+                       col_value = (char*)malloc(50);
+                       sprintf(col_value, "%d", act_val);
+
+                       var_query = realloc(var_query, strlen(var_query)+strlen(col_value) + 1);
+                       strcat(var_query, col_value);
+
+               } else if(!strcmp(col_type, "TEXT") || !strcmp(col_type, "TEXT PRIMARY KEY NOT NULL")) {
+                       char* tmp_value = eina_list_nth(column_values, col);
+                       col_value = (char*)malloc(strlen(tmp_value) + 1);
+                       strcpy(col_value,tmp_value);
+
+                       var_query = realloc(var_query, strlen(var_query)+strlen("'") + 1);
+                       strcat(var_query, "'");
+
+                       var_query = realloc(var_query, strlen(var_query)+strlen(col_value) + 1);
+                       strcat(var_query, col_value);
+
+                       var_query = realloc(var_query, strlen(var_query)+strlen("'") + 1);
+                       strcat(var_query, "'");
+               }
+
+               if(col < col_count - 1){
+                       var_query = realloc(var_query, strlen(var_query) + 3);
+                       strcat(var_query, ", ");
+               } else {
+                       var_query = realloc(var_query, strlen(var_query) + 3);
+                       strcat(var_query, ");");
+               }
+               free(col_value);
+       }
+
+       ret = sqlite3_exec(db,var_query, NULL,(void*)db, &err_msg);
+       if( ret != SQLITE_OK ){
+               sqlite3_free(err_msg);
+               return EINA_FALSE;
+       }
+       return EINA_TRUE;
+
+}
+
+
+Eina_Bool update_table(sqlite3* db, const char* table_name, Eina_List* column_names, Eina_List* column_types, Eina_List* column_values, const char* where_clause)
+{
+       if(!db || !table_name || ! column_names || !column_types || !column_values) {
+               return EINA_FALSE;
+       }
+
+       int ret = 0 ;
+       char* err_msg = 0;
+       int col_count = eina_list_count(column_names);
+
+       int str_len = strlen("UPDATE ") + strlen(table_name) + strlen(" SET ") + 1;
+       char* var_query = (char*)malloc(str_len);
+       strcpy(var_query,"UPDATE ");
+       strcat(var_query, table_name);
+       strcat(var_query, " SET ");
+
+
+       int col_val_count = eina_list_count(column_values);
+
+       for(int col = 0; col < col_val_count ; col++) {
+               char* col_name = eina_list_nth(column_names, col);
+               char* col_type = eina_list_nth(column_types, col);
+
+               char* col_value = NULL;
+               if(!strcmp(col_type, "INTEGER") || !strcmp(col_type, "INTEGER PRIMARY KEY NOT NULL")) {
+                       int* tmp_value = eina_list_nth(column_values, col);
+
+                       int act_val = (*tmp_value);
+                       col_value = (char*)malloc(50);
+                       sprintf(col_value, "%d", act_val);
+
+                       var_query = realloc(var_query, strlen(var_query) + strlen(col_name) + strlen(" = ") + strlen(col_value) + 1);
+                       strcat(var_query, col_name);
+                       strcat(var_query, " = ");
+                       strcat(var_query, col_value);
+
+               } else if(!strcmp(col_type, "TEXT") || !strcmp(col_type, "TEXT PRIMARY KEY NOT NULL")) {
+
+                       char* tmp_value = eina_list_nth(column_values, col);
+                       col_value = (char*)malloc(strlen(tmp_value) + 1);
+                       strcpy(col_value,tmp_value);
+
+                       var_query = realloc(var_query, strlen(var_query)+ strlen(col_name) + strlen(" = ")+strlen("'") + 1);
+                       strcat(var_query, col_name);
+                       strcat(var_query, " = ");
+                       strcat(var_query, "'");
+
+                       var_query = realloc(var_query, strlen(var_query)+strlen(col_value) + 1);
+                       strcat(var_query, col_value);
+
+                       var_query = realloc(var_query, strlen(var_query)+strlen("'") + 1);
+                       strcat(var_query, "'");
+               }
+
+               if(col < col_count - 1){
+                       var_query = realloc(var_query, strlen(var_query) + 3);
+                       strcat(var_query, ", ");
+               } else {
+                       var_query = realloc(var_query, strlen(var_query) + 2);
+                       strcat(var_query, " ");
+               }
+               free(col_value);
+       }
+
+       var_query = realloc(var_query, strlen(var_query) + strlen(" WHERE ") + strlen(where_clause) + 2);
+       strcat(var_query, " WHERE ");
+       strcat(var_query, where_clause);
+       strcat(var_query, ";");
+
+       ret = sqlite3_exec(db,var_query, NULL,(void*)db, &err_msg);
+       if( ret != SQLITE_OK ){
+               sqlite3_free(err_msg);
+               return EINA_FALSE;
+       }
+       return EINA_TRUE;
+
+}
+
+Eina_Bool get_values_from_table(sqlite3* db, const char* table_name, Eina_List* column_names, int (*callback)(void*,int,char**,char**), const char* where_clause, void* data_to_callback)
+{
+       if (!db || !table_name) {
+               return EINA_FALSE;
+       }
+
+       /*****No rows identification*****/
+
+       char* row_cnt_qry = (char*)malloc(strlen("SELECT COUNT(*) FROM ") + strlen(table_name) + strlen(";") +1);
+       strcpy(row_cnt_qry, "SELECT COUNT(*) FROM ");
+       strcat(row_cnt_qry, table_name);
+       strcat(row_cnt_qry, ";");
+
+       int no_of_rows = 0;
+       //ret = sqlite3_exec(db,var_query, callback,(void*)db, &err_msg);
+
+       sqlite3_stmt *stmt;
+       if (sqlite3_prepare_v2(db, row_cnt_qry, -1, &stmt, NULL) == SQLITE_OK) {
+               if (sqlite3_step(stmt) == SQLITE_ERROR) {
+                       no_of_rows = 0;
+               } else {
+                       no_of_rows = sqlite3_column_int(stmt, 0);
+               }
+               sqlite3_finalize(stmt);
+       }
+
+       free(row_cnt_qry);
+       if(no_of_rows <= 0) {
+               return EINA_FALSE;
+       }
+
+       /********************************/
+
+       int ret = 0 ;
+       char* err_msg = 0;
+       //int col_count = eina_list_count(column_names);
+
+       int str_len = strlen("SELECT ") + 1;
+       char* var_query = (char*)malloc(str_len);
+       strcpy(var_query,"SELECT ");
+       if(!column_names) {
+               var_query = realloc(var_query, strlen(var_query) + 3);
+               strcat(var_query, "* ");
+       } else {
+
+               int col_count = eina_list_count(column_names);
+               char* col_name = NULL;
+               for(int col = 0; col < col_count ; col++) {
+                       col_name = eina_list_nth(column_names, col);
+                       var_query = realloc(var_query, strlen(var_query)+strlen(col_name) + 1);
+                       strcat(var_query, col_name);
+                       col_name = NULL;
+                       var_query = realloc(var_query, strlen(var_query)+strlen(" ") + 1);
+
+                       if(col < col_count - 1){
+                               var_query = realloc(var_query, strlen(var_query) + 3);
+                               strcat(var_query, ", ");
+                       } else {
+                               var_query = realloc(var_query, strlen(var_query) + 2);
+                               strcat(var_query, " ");
+                       }
+               }
+
+       }
+
+       var_query = realloc(var_query, strlen(var_query) + strlen("FROM ") + 2);
+       strcat(var_query, "FROM ");
+       var_query = realloc(var_query, strlen(var_query) + strlen(table_name) + 1);
+       strcat(var_query, table_name);
+
+       if (where_clause) {
+               var_query = realloc(var_query, strlen(var_query)+strlen(" WHERE ") + 1);
+               strcat(var_query, " WHERE ");
+               var_query = realloc(var_query, strlen(var_query)+strlen(where_clause) + 1);
+               strcat(var_query, where_clause);
+       }
+
+       var_query = realloc(var_query, strlen(var_query) + 2);
+       strcat(var_query, ";");
+
+
+       ret = sqlite3_exec(db,var_query, callback,(void*)data_to_callback, &err_msg);
+       if( ret != SQLITE_OK ){
+               sqlite3_free(err_msg);
+               return EINA_FALSE;
+       }
+
+       free(var_query);
+       return EINA_TRUE;
+}
+
+Eina_List* get_values_from_table_sync_order_by(sqlite3* db, const char* table_name, Eina_List* column_names, Eina_List* column_types, const char* order_column, Eina_Bool is_asc)
+{
+       Eina_List* query_vals = NULL;
+
+       if (!db || !table_name) {
+               return NULL;
+       }
+
+       /*****No rows identification*****/
+
+       char* row_cnt_qry = (char*)malloc(strlen("SELECT COUNT(*) FROM ") + strlen(table_name) + strlen(";") +1);
+       strcpy(row_cnt_qry, "SELECT COUNT(*) FROM ");
+       strcat(row_cnt_qry, table_name);
+       strcat(row_cnt_qry, ";");
+
+       int no_of_rows = 0;
+       //ret = sqlite3_exec(db,var_query, callback,(void*)db, &err_msg);
+
+       sqlite3_stmt *stmt;
+       if (sqlite3_prepare_v2(db, row_cnt_qry, -1, &stmt, NULL) == SQLITE_OK) {
+               if (sqlite3_step(stmt) == SQLITE_ERROR) {
+                       no_of_rows = 0;
+               } else {
+                       no_of_rows = sqlite3_column_int(stmt, 0);
+               }
+               sqlite3_finalize(stmt);
+       }
+
+       free(row_cnt_qry);
+       if(no_of_rows <= 0) {
+               return EINA_FALSE;
+       }
+
+       /********************************/
+
+       int ret = 0 ;
+       char* err_msg = 0;
+       //int col_count = eina_list_count(column_names);
+
+       int str_len = strlen("SELECT ") + 1;
+       char* var_query = (char*)malloc(str_len);
+       strcpy(var_query,"SELECT ");
+       if(!column_names) {
+               var_query = realloc(var_query, strlen(var_query) + 3);
+               strcat(var_query, "* ");
+       } else {
+
+               int col_count = eina_list_count(column_names);
+               char* col_name = NULL;
+               for(int col = 0; col < col_count ; col++) {
+                       col_name = eina_list_nth(column_names, col);
+                       var_query = realloc(var_query, strlen(var_query)+strlen(col_name) + 1);
+                       strcat(var_query, col_name);
+                       col_name = NULL;
+                       var_query = realloc(var_query, strlen(var_query)+strlen(" ") + 1);
+
+                       if(col < col_count - 1){
+                               var_query = realloc(var_query, strlen(var_query) + 3);
+                               strcat(var_query, ", ");
+                       } else {
+                               var_query = realloc(var_query, strlen(var_query) + 2);
+                               strcat(var_query, " ");
+                       }
+               }
+
+       }
+
+       var_query = realloc(var_query, strlen(var_query) + strlen("FROM ") + 2);
+       strcat(var_query, "FROM ");
+       var_query = realloc(var_query, strlen(var_query) + strlen(table_name) + 1);
+       strcat(var_query, table_name);
+
+       if (order_column) {
+               var_query = realloc(var_query, strlen(var_query)+strlen(" ORDER BY ") + 1);
+               strcat(var_query, " ORDER BY ");
+               var_query = realloc(var_query, strlen(var_query)+strlen(order_column) + 1);
+               strcat(var_query, order_column);
+               if (is_asc) {
+                       var_query = realloc(var_query, strlen(var_query)+strlen(" ASC ") + 1);
+                       strcat(var_query, " ASC ");
+               } else {
+                       var_query = realloc(var_query, strlen(var_query)+strlen(" DESC ") + 1);
+                       strcat(var_query, " DESC ");
+               }
+       }
+
+       var_query = realloc(var_query, strlen(var_query) + 2);
+       strcat(var_query, ";");
+
+
+       ret = sqlite3_prepare_v2(db, var_query, -1, &stmt, 0);
+       if( ret != SQLITE_OK ){
+               sqlite3_free(err_msg);
+               return NULL;
+       }
+
+       while(sqlite3_step(stmt) == SQLITE_ROW) {
+               int col_val_count = eina_list_count(column_names);
+               Eina_List* row_vals = NULL;
+               for(int col = 0; col < col_val_count ; col++) {
+                       char* col_type = eina_list_nth(column_types, col);
+                       if(!strcmp(col_type, "INTEGER") || !strcmp(col_type, "INTEGER PRIMARY KEY NOT NULL")) {
+                               int temp = sqlite3_column_int64(stmt, col);
+                               int* val_int = (int*)malloc(sizeof(int));
+                               *val_int = temp;
+                               row_vals = eina_list_append(row_vals, val_int);
+                       } else if(!strcmp(col_type, "TEXT") || !strcmp(col_type, "TEXT PRIMARY KEY NOT NULL")) {
+                               char* val_text = strdup(sqlite3_column_text(stmt, col));
+                               row_vals = eina_list_append(row_vals, val_text);
+                       }
+               }
+               query_vals = eina_list_append(query_vals, row_vals);
+       }
+
+       free(var_query);
+       return query_vals;
+
+}
+
+Eina_List* get_values_from_table_sync(sqlite3* db, const char* table_name, Eina_List* column_names, Eina_List* column_types, const char* where_clause)
+{
+       Eina_List* query_vals = NULL;
+
+       if (!db || !table_name) {
+               return NULL;
+       }
+
+       /*****No rows identification*****/
+
+       char* row_cnt_qry = (char*)malloc(strlen("SELECT COUNT(*) FROM ") + strlen(table_name) + strlen(";") +1);
+       strcpy(row_cnt_qry, "SELECT COUNT(*) FROM ");
+       strcat(row_cnt_qry, table_name);
+       strcat(row_cnt_qry, ";");
+
+       int no_of_rows = 0;
+       //ret = sqlite3_exec(db,var_query, callback,(void*)db, &err_msg);
+
+       sqlite3_stmt *stmt;
+       if (sqlite3_prepare_v2(db, row_cnt_qry, -1, &stmt, NULL) == SQLITE_OK) {
+               if (sqlite3_step(stmt) == SQLITE_ERROR) {
+                       no_of_rows = 0;
+               } else {
+                       no_of_rows = sqlite3_column_int(stmt, 0);
+               }
+               sqlite3_finalize(stmt);
+       }
+
+       free(row_cnt_qry);
+       if(no_of_rows <= 0) {
+               return EINA_FALSE;
+       }
+
+       /********************************/
+
+       int ret = 0 ;
+       char* err_msg = 0;
+       //int col_count = eina_list_count(column_names);
+
+       int str_len = strlen("SELECT ") + 1;
+       char* var_query = (char*)malloc(str_len);
+       strcpy(var_query,"SELECT ");
+       if(!column_names) {
+               var_query = realloc(var_query, strlen(var_query) + 3);
+               strcat(var_query, "* ");
+       } else {
+
+               int col_count = eina_list_count(column_names);
+               char* col_name = NULL;
+               for(int col = 0; col < col_count ; col++) {
+                       col_name = eina_list_nth(column_names, col);
+                       var_query = realloc(var_query, strlen(var_query)+strlen(col_name) + 1);
+                       strcat(var_query, col_name);
+                       col_name = NULL;
+                       var_query = realloc(var_query, strlen(var_query)+strlen(" ") + 1);
+
+                       if(col < col_count - 1){
+                               var_query = realloc(var_query, strlen(var_query) + 3);
+                               strcat(var_query, ", ");
+                       } else {
+                               var_query = realloc(var_query, strlen(var_query) + 2);
+                               strcat(var_query, " ");
+                       }
+               }
+
+       }
+
+       var_query = realloc(var_query, strlen(var_query) + strlen("FROM ") + 2);
+       strcat(var_query, "FROM ");
+       var_query = realloc(var_query, strlen(var_query) + strlen(table_name) + 1);
+       strcat(var_query, table_name);
+
+       if (where_clause) {
+               var_query = realloc(var_query, strlen(var_query)+strlen(" WHERE ") + 1);
+               strcat(var_query, " WHERE ");
+               var_query = realloc(var_query, strlen(var_query)+strlen(where_clause) + 1);
+               strcat(var_query, where_clause);
+       }
+
+       var_query = realloc(var_query, strlen(var_query) + 2);
+       strcat(var_query, ";");
+
+
+       ret = sqlite3_prepare_v2(db, var_query, -1, &stmt, 0);
+       if( ret != SQLITE_OK ){
+               sqlite3_free(err_msg);
+               return NULL;
+       }
+
+       while(sqlite3_step(stmt) == SQLITE_ROW) {
+               int col_val_count = eina_list_count(column_names);
+               Eina_List* row_vals = NULL;
+               for(int col = 0; col < col_val_count ; col++) {
+                       char* col_type = eina_list_nth(column_types, col);
+                       if(!strcmp(col_type, "INTEGER") || !strcmp(col_type, "INTEGER PRIMARY KEY NOT NULL")) {
+                               int temp = sqlite3_column_int64(stmt, col);
+                               int* val_int = (int*)malloc(sizeof(int));
+                               *val_int = temp;
+                               row_vals = eina_list_append(row_vals, val_int);
+                       } else if(!strcmp(col_type, "TEXT") || !strcmp(col_type, "TEXT PRIMARY KEY NOT NULL")) {
+                               char* val_text = strdup(sqlite3_column_text(stmt, col));
+                               row_vals = eina_list_append(row_vals, val_text);
+                       }
+               }
+               query_vals = eina_list_append(query_vals, row_vals);
+       }
+
+       free(var_query);
+       return query_vals;
+}
+
+Eina_Bool close_database(sqlite3* db)
+{
+       if(db) {
+               sqlite3_close(db);
+               return EINA_TRUE;
+       }
+       return EINA_FALSE;
+}
diff --git a/TelegramTizen/db_manager/tg_db_manager.h b/TelegramTizen/db_manager/tg_db_manager.h
new file mode 100644 (file)
index 0000000..d643683
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ * tg_db_manager.h
+ *
+ *  Created on: Jun 30, 2015
+ *      Author: sandeep
+ */
+
+#ifndef TG_DB_MANAGER_H_
+#define TG_DB_MANAGER_H_
+
+#include "tg_common.h"
+#include <sqlite3.h>
+
+extern sqlite3* create_database(char* database_name);
+extern Eina_Bool create_table(sqlite3* db, const char* table_name, Eina_List* column_names, Eina_List* column_types);
+extern Eina_Bool insert_table(sqlite3* db, const char* table_name, Eina_List* column_names, Eina_List* column_types, Eina_List* column_values);
+extern Eina_Bool update_table(sqlite3* db, const char* table_name, Eina_List* column_names, Eina_List* column_types, Eina_List* column_values, const char* where_clause);
+extern Eina_Bool get_values_from_table(sqlite3* db, const char* table_name, Eina_List* column_names, int (*callback)(void*,int,char**,char**), const char* where_clause, void* data_to_callback);
+extern Eina_List* get_values_from_table_sync(sqlite3* db, const char* table_name, Eina_List* column_names, Eina_List* column_types, const char* where_clause);
+extern Eina_List* get_values_from_table_sync_order_by(sqlite3* db, const char* table_name, Eina_List* column_names, Eina_List* column_types, const char* order_column, Eina_Bool is_asc);
+extern Eina_Bool close_database(sqlite3* db);
+
+
+
+#endif /* TG_DB_MANAGER_H_ */
diff --git a/TelegramTizen/inc/contact_selection_view.h b/TelegramTizen/inc/contact_selection_view.h
new file mode 100644 (file)
index 0000000..41c2f64
--- /dev/null
@@ -0,0 +1,15 @@
+/*
+ * contact_selection_view.h
+ *
+ *  Created on: Jul 9, 2015
+ *      Author: sandeep
+ */
+
+#ifndef CONTACT_SELECTION_VIEW_H_
+#define CONTACT_SELECTION_VIEW_H_
+#include "tg_common.h"
+
+extern void launch_contact_selction_view(void *data);
+
+
+#endif /* CONTACT_SELECTION_VIEW_H_ */
diff --git a/TelegramTizen/inc/contacts_common.h b/TelegramTizen/inc/contacts_common.h
new file mode 100644 (file)
index 0000000..612c96d
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __COMMON_H__
+#define __COMMON_H__
+
+#include <time.h>
+
+typedef enum
+{
+    CF_ADDRESSBOOK = 0,
+    CF_FIRST_NAME,
+    CF_LAST_NAME,
+    CF_PHONE_NUMBER,
+    CF_EMAIL,
+    CF_URL,
+    CF_COMPANY,
+    CF_BIRTHDAY,
+    CF_NOTE,
+    CF_MAX
+} sc_common_contact_fields;
+
+/**
+ * @brief Retrieves properties for contact table
+ * @param[in]    field_type          Type of field: number, email
+ * @param[out]   parent_property_id  Contact's property as key to child table
+ * @param[out]   child_uri           URI of child table
+ * @param[out]   child_property_id   ID of desired field of child table
+ */
+void sc_common_get_contact_properties(sc_common_contact_fields field_type, unsigned *parent_property_id, const char **child_uri, unsigned *child_property_id);
+
+/**
+ * @brief Convert date to contacts database format
+ * @param[in]   date    date tm structure or NULL for current date
+ * @return number representation of date or current date
+ */
+int sc_common_date_to_int(const struct tm *date);
+
+/**
+ * @brief Convert number representation of date to tm structure
+ * @param[in]   date_value    date in contacts database format
+ * @return date tm structure
+ */
+struct tm sc_common_int_to_date(int date_value);
+
+/**
+ * @brief Convert date to string
+ * @remark Return value MUST be destroyed with free() by you
+ * @param[in]   date        date tm structure or NULL for current date
+ * @return date in string representation
+ */
+char *sc_common_date_to_str(struct tm *date);
+
+/**
+ * @brief Gets contact field name by contact type
+ * @remark Return value MUST NOT be destroyed by you
+ * @param[in]   field_type  Field type
+ * @return contact name
+ */
+const char *sc_common_get_contact_field_name(sc_common_contact_fields field_type);
+
+/**
+ * @brief Trims spaces in @a str
+ * @remark Return value MUST be destroyed with free() by you
+ * @param[in]   str     String to trim
+ * @return Trimmed string on success, otherwise NULL
+ */
+char *sc_common_trim_spaces_in_string(const char *str);
+
+#endif //__COMMON_H__
diff --git a/TelegramTizen/inc/device_contacts_manager.h b/TelegramTizen/inc/device_contacts_manager.h
new file mode 100644 (file)
index 0000000..8d4f2a1
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * device_contacts_manager.h
+ *
+ *  Created on: Jul 7, 2015
+ *      Author: sandeep
+ */
+
+#ifndef DEVICE_CONTACTS_MANAGER_H_
+#define DEVICE_CONTACTS_MANAGER_H_
+
+#include "tg_common.h"
+#include <contacts.h>
+
+typedef struct contact_data {
+       int contact_id;
+       char* display_name;
+       char* first_name;
+       char* last_name;
+       char* phone_number;
+} contact_data_s;
+
+extern Eina_List* get_contact_list_from_device_db();
+
+
+
+
+#endif /* DEVICE_CONTACTS_MANAGER_H_ */
diff --git a/TelegramTizen/inc/group_chat_entry_view.h b/TelegramTizen/inc/group_chat_entry_view.h
new file mode 100644 (file)
index 0000000..6dfeddf
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+ * group_chat_entry_view.h
+ *
+ *  Created on: Jul 11, 2015
+ *      Author: sandeep
+ */
+
+#ifndef GROUP_CHAT_ENTRY_VIEW_H_
+#define GROUP_CHAT_ENTRY_VIEW_H_
+
+
+#include "tg_common.h"
+
+extern void launch_group_chat_name_entry_view(void *data);
+
+
+#endif /* GROUP_CHAT_ENTRY_VIEW_H_ */
diff --git a/TelegramTizen/inc/logger.h b/TelegramTizen/inc/logger.h
new file mode 100644 (file)
index 0000000..e046266
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * logger.h
+ *
+ *  Created on: Jun 25, 2015
+ *      Author: sandeep
+ */
+
+#ifndef __LOGGER_H__
+#define __LOGGER_H__
+
+#include <dlog.h>
+
+#ifdef  LOG_TAG
+#undef  LOG_TAG
+#endif
+#define LOG_TAG "hyb_service"
+
+#define MODULE_INFO (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
+
+#define INF(fmt, arg...) dlog_print(DLOG_INFO, \
+        LOG_TAG, "%s: %s(%d) > " fmt, MODULE_INFO, \
+        __func__, __LINE__, ##arg)
+
+#define DBG(fmt, arg...) dlog_print(DLOG_DEBUG, \
+        LOG_TAG, "%s: %s(%d) > " fmt, MODULE_INFO, \
+        __func__, __LINE__, ##arg)
+
+#define WARN(fmt, arg...) dlog_print(DLOG_WARN, \
+        LOG_TAG, "%s: %s(%d) > " fmt, MODULE_INFO, \
+        __func__, __LINE__, ##arg)
+
+#define ERR(fmt, arg...) dlog_print(DLOG_ERROR, \
+        LOG_TAG, "%s: %s(%d) > " fmt, MODULE_INFO, \
+        __func__, __LINE__, ##arg)
+
+#define RETM_IF(expr, fmt, arg...) \
+{ \
+    if (expr) { \
+        ERR(fmt, ##arg); \
+        return; \
+    } \
+}
+
+#define RETVM_IF(expr, val, fmt, arg...) \
+{ \
+    if (expr) { \
+        ERR(fmt, ##arg); \
+        return (val); \
+    } \
+}
+
+#endif /* __LOGGER_H__ */
diff --git a/TelegramTizen/inc/server_requests.h b/TelegramTizen/inc/server_requests.h
new file mode 100644 (file)
index 0000000..cb37524
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * server_requests.h
+ *
+ *  Created on: Jun 26, 2015
+ *      Author: sandeep
+ */
+
+#ifndef SERVER_REQUESTS_H_
+#define SERVER_REQUESTS_H_
+
+#include "tg_common.h"
+
+void send_request_for_registration(service_client* service_client, const char* phone_number, Eina_Bool through_sms);
+void send_request_for_profile_registration(service_client* service_client, const char* first_name, const char* last_name);
+void send_request_for_validation(service_client* service_client, const char* sms_code);
+// type_of_chat 0-buddy, 1-group_chat 2-encrpted_chat
+void send_request_for_message_transport(service_client* service_client, const int buddy_id, const int msg_type, const char* data, const int type_of_chat);
+void send_request_for_image_downloading(service_client* service_client, const int buddy_id, const long long media_id);
+void send_request_for_media_transport(service_client* service_client, const int buddy_id, const int msg_type, const char* file_path);
+void send_contacts_list_to_server(service_client* service_client, Eina_List* contacts_list);
+void send_group_creation_request_to_server(service_client* service_client, Eina_List* buddy_list, const char* group_name, const char* group_image);
+
+#endif /* SERVER_REQUESTS_H_ */
diff --git a/TelegramTizen/inc/service_client.h b/TelegramTizen/inc/service_client.h
new file mode 100644 (file)
index 0000000..00e8bdb
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * service_client.h
+ *
+ *  Created on: Jun 25, 2015
+ *      Author: sandeep
+ */
+
+#ifndef SERVICE_CLIENT_H_
+#define SERVICE_CLIENT_H_
+
+#include <bundle.h>
+#include "logger.h"
+
+typedef enum
+{
+    SVC_RES_OK = 0,
+    SVC_RES_FAIL = -1,
+} svc_result;
+
+typedef enum
+{
+    REQ_OPER_NONE = 0,
+    REQ_OPER_START_TIMER,
+    REQ_OPER_STOP_TIMER,
+    REQ_OPER_SEND_TIMER_EXP_MSG,
+    REQ_OPER_EXIT_APP
+} req_operation;
+
+typedef struct _service_client service_client;
+
+/**
+ * @brief service client related message receive callback definition
+ */
+typedef int (*service_client_callback_func)(void *data, bundle *const msg);
+
+/**
+ * @brief Create service client instance
+ * @return service client instance on success, otherwise NULL
+ */
+service_client *service_client_create();
+
+/**
+ * @brief Destroy service client instance
+ * @param[in]   service_cl    service client instance
+ */
+void service_client_destroy(service_client *service_cl);
+
+/**
+ * @brief Register port for service client to receive/send messages
+ * @param[in]   service_cl    service client instance
+ * @param[in]   port_name   Port name to set
+ * @return Error code.  SVC_RES_OK if success.
+ *                      SVC_RES_FAIL if fails
+ */
+int service_client_register_port(service_client *service_cl, const char *port_name);
+
+/**
+ * @brief Register callback function on service client message receive
+ * @param[in]   service_cl        service client instance
+ * @param[in]   callback_func   Callback function
+ * @param[in]   data            Data set to callback function
+ * @return Error code.  SVC_RES_OK if success.
+ *                      SVC_RES_FAIL if fails
+ */
+int service_client_register_msg_receive_callback (service_client *service_cl,
+        service_client_callback_func callback_func,
+        void *data);
+
+/**
+ * @brief Send message by registered port
+ * @param[in]   service_cl    service client instance
+ * @param[in]   msg         Message to send
+ * @return Error code.  SVC_RES_OK if success.
+ *                      SVC_RES_FAIL if fails
+ */
+int service_client_send_message(service_client *service_cl, bundle *const msg);
+
+int _service_client_set_remote_data(service_client *service_cl,
+        const char *rem_app_name,
+        const char *rem_port_name);
+
+
+#endif /* SERVICE_CLIENT_H_ */
diff --git a/TelegramTizen/inc/telegramtizen.h b/TelegramTizen/inc/telegramtizen.h
new file mode 100644 (file)
index 0000000..0c1679a
--- /dev/null
@@ -0,0 +1,28 @@
+#ifndef __telegramtizen_H__
+#define __telegramtizen_H__
+
+#include <app.h>
+#include <Elementary.h>
+#include <system_settings.h>
+#include <efl_extension.h>
+#include <dlog.h>
+
+#ifdef  LOG_TAG
+#undef  LOG_TAG
+#endif
+#define LOG_TAG "telegramtizen"
+
+#if !defined(PACKAGE)
+#define PACKAGE "org.tizen.telegramtizen"
+#endif
+
+#define EDJ_FILE "edje/telegramtizen.edj"
+#define GRP_MAIN "main"
+
+
+
+static const char *TELEGRAM_CLIENT_PORT_NAME = "TIZEN_CLIENT_PORT";
+static const char *TELEGRAM_SERVER_PORT_NAME = "TIZEN_SERVER_PORT";
+static const char *TELEGRAM_SERVER_APP_NAME = "org.tizen.tg-engine-service";
+
+#endif /* __telegramtizen_H__ */
diff --git a/TelegramTizen/inc/tg_buddy_list.h b/TelegramTizen/inc/tg_buddy_list.h
new file mode 100644 (file)
index 0000000..940238a
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+ * tg_buddy_list.h
+ *
+ *  Created on: May 21, 2015
+ *      Author: sandeep
+ */
+
+#ifndef TG_BUDDY_LIST_H_
+#define TG_BUDDY_LIST_H_
+
+
+
+#include "tg_common.h"
+
+extern void launch_buddy_list_cb(void *data);
+extern void refresh_buddy_list(void *data);
+
+#endif /* TG_BUDDY_LIST_H_ */
diff --git a/TelegramTizen/inc/tg_chat_conv_view.h b/TelegramTizen/inc/tg_chat_conv_view.h
new file mode 100644 (file)
index 0000000..e91741f
--- /dev/null
@@ -0,0 +1,20 @@
+/*
+ * tg_chat_conv_view.h
+ *
+ *  Created on: Jun 8, 2015
+ *      Author: sandeep
+ */
+
+#ifndef TG_CHAT_CONV_VIEW_H_
+#define TG_CHAT_CONV_VIEW_H_
+
+
+#include "tg_common.h"
+
+extern void launch_chat_conv_view_cb(void *data, int user_id);
+extern void on_chat_buddy_msg_receive(tg_message_s *M, int type_of_chat);
+extern void on_received_image_loaded(int buddy_id, long long media_id, const char* file_path);
+extern void on_message_sent_to_buddy_successfully(tg_message_s *M, int type_of_chat);
+extern void on_message_read_by_buddy_successfully(tg_message_s *M, int type_of_chat);
+
+#endif /* TG_CHAT_CONV_VIEW_H_ */
diff --git a/TelegramTizen/inc/tg_db_wrapper.h b/TelegramTizen/inc/tg_db_wrapper.h
new file mode 100644 (file)
index 0000000..093dcda
--- /dev/null
@@ -0,0 +1,177 @@
+/*
+ * tg_db_wrapper.h
+ *
+ *  Created on: Jun 26, 2015
+ *      Author: sandeep
+ */
+
+#ifndef TG_DB_WRAPPER_H_
+#define TG_DB_WRAPPER_H_
+#include "tg_db_manager.h"
+#include "tg_common.h"
+
+#define USER_INFO_TABLE_NAME "user_info_table"
+
+#define USER_INFO_TABLE_USER_ID "user_id"
+#define USER_INFO_TABLE_PRINT_NAME "print_name"
+#define USER_INFO_TABLE_STRUCTURE_VERSION "structure_version"
+#define USER_INFO_TABLE_PHOTO_PATH "photo_path"
+#define USER_INFO_TABLE_PHOTO_ID "photo_id"
+#define USER_INFO_TABLE_FIRST_NAME "first_name"
+#define USER_INFO_TABLE_LAST_NAME "last_name"
+#define USER_INFO_TABLE_PHONE_NO "phone"
+#define USER_INFO_TABLE_ACCESS_HASH "access_hash"
+#define USER_INFO_TABLE_REAL_FIRST_NAME "real_first_name"
+#define USER_INFO_TABLE_REAL_LAST_NAME "real_last_name"
+#define USER_INFO_TABLE_USER_NAME "username"
+#define USER_INFO_TABLE_ONLINE_STATUS "online"
+#define USER_INFO_TABLE_LAST_SEEN_TIME "last_seen"
+
+#define BUDDY_INFO_TABLE_NAME "buddy_info_table"
+
+#define BUDDY_INFO_TABLE_BUDDY_ID "user_id"
+#define BUDDY_INFO_TABLE_PRINT_NAME "print_name"
+#define BUDDY_INFO_TABLE_STRUCTURE_VERSION "structure_version"
+#define BUDDY_INFO_TABLE_PHOTO_PATH "photo_path"
+#define BUDDY_INFO_TABLE_PHOTO_ID "photo_id"
+#define BUDDY_INFO_TABLE_FIRST_NAME "first_name"
+#define BUDDY_INFO_TABLE_LAST_NAME "last_name"
+#define BUDDY_INFO_TABLE_PHONE_NO "phone"
+#define BUDDY_INFO_TABLE_ACCESS_HASH "access_hash"
+#define BUDDY_INFO_TABLE_REAL_FIRST_NAME "real_first_name"
+#define BUDDY_INFO_TABLE_REAL_LAST_NAME "real_last_name"
+#define BUDDY_INFO_TABLE_BUDDY_NAME "username"
+#define BUDDY_INFO_TABLE_ONLINE_STATUS "online"
+#define BUDDY_INFO_TABLE_LAST_SEEN_TIME "last_seen"
+
+#define MEDIA_INFO_TABLE_NAME "media_info_table"
+
+#define MEDIA_INFO_TABLE_MEDIA_ID "media_id"
+#define MEDIA_INFO_TABLE_MEDIA_TYPE "media_type"
+#define MEDIA_INFO_TABLE_ACCESS_HASH "access_hash"
+#define MEDIA_INFO_TABLE_USER_ID "user_id"
+#define MEDIA_INFO_TABLE_DATE "date"
+#define MEDIA_INFO_TABLE_CAPTION "caption"
+#define MEDIA_INFO_TABLE_LONGITUDE "longitude"
+#define MEDIA_INFO_TABLE_LATITUDE "latitude"
+#define MEDIA_INFO_TABLE_SIZES_NUM "sizes_num"
+
+#define MEDIA_INFO_TABLE_PHOTO_TYPE1 "photo_type1" //text
+#define MEDIA_INFO_TABLE_PHOTO_LOC_DC1 "photo_loc_dc1" //int
+#define MEDIA_INFO_TABLE_PHOTO_LOC_VOL1 "photo_loc_vol1" //int
+#define MEDIA_INFO_TABLE_PHOTO_LOC_ID1 "photo_loc_id1" //int
+#define MEDIA_INFO_TABLE_PHOTO_LOC_SECRET1 "photo_loc_secret1" //int
+#define MEDIA_INFO_TABLE_PHOTO_WIDTH1 "photo_width1" //int
+#define MEDIA_INFO_TABLE_PHOTO_HEIGHT1 "photo_height1" //int
+#define MEDIA_INFO_TABLE_PHOTO_SIZE1 "photo_size1" //int
+#define MEDIA_INFO_TABLE_PHOTO_DATA1 "photo_data1" //text
+
+#define MEDIA_INFO_TABLE_PHOTO_TYPE2 "photo_type2" //text
+#define MEDIA_INFO_TABLE_PHOTO_LOC_DC2 "photo_loc_dc2" //int
+#define MEDIA_INFO_TABLE_PHOTO_LOC_VOL2 "photo_loc_vol2" //int
+#define MEDIA_INFO_TABLE_PHOTO_LOC_ID2 "photo_loc_id2" //int
+#define MEDIA_INFO_TABLE_PHOTO_LOC_SECRET2 "photo_loc_secret2" //int
+#define MEDIA_INFO_TABLE_PHOTO_WIDTH2 "photo_width2" //int
+#define MEDIA_INFO_TABLE_PHOTO_HEIGHT2 "photo_height2" //int
+#define MEDIA_INFO_TABLE_PHOTO_SIZE2 "photo_size2" //int
+#define MEDIA_INFO_TABLE_PHOTO_DATA2 "photo_data2" //text
+
+#define MEDIA_INFO_TABLE_PHOTO_TYPE3 "photo_type3" //text
+#define MEDIA_INFO_TABLE_PHOTO_LOC_DC3 "photo_loc_dc3" //int
+#define MEDIA_INFO_TABLE_PHOTO_LOC_VOL3 "photo_loc_vol3" //int
+#define MEDIA_INFO_TABLE_PHOTO_LOC_ID3 "photo_loc_id3" //int
+#define MEDIA_INFO_TABLE_PHOTO_LOC_SECRET3 "photo_loc_secret3" //int
+#define MEDIA_INFO_TABLE_PHOTO_WIDTH3 "photo_width3" //int
+#define MEDIA_INFO_TABLE_PHOTO_HEIGHT3 "photo_height3" //int
+#define MEDIA_INFO_TABLE_PHOTO_SIZE3 "photo_size3" //int
+#define MEDIA_INFO_TABLE_PHOTO_DATA3 "photo_data3" //text
+
+#define MEDIA_INFO_TABLE_PHOTO_TYPE4 "photo_type4" //text
+#define MEDIA_INFO_TABLE_PHOTO_LOC_DC4 "photo_loc_dc4" //int
+#define MEDIA_INFO_TABLE_PHOTO_LOC_VOL4 "photo_loc_vol4" //int
+#define MEDIA_INFO_TABLE_PHOTO_LOC_ID4 "photo_loc_id4" //int
+#define MEDIA_INFO_TABLE_PHOTO_LOC_SECRET4 "photo_loc_secret4" //int
+#define MEDIA_INFO_TABLE_PHOTO_WIDTH4 "photo_width4" //int
+#define MEDIA_INFO_TABLE_PHOTO_HEIGHT4 "photo_height4" //int
+#define MEDIA_INFO_TABLE_PHOTO_SIZE4 "photo_size4" //int
+#define MEDIA_INFO_TABLE_PHOTO_DATA4 "photo_data4" //text
+
+
+#define MEDIA_INFO_TABLE_PHONE_NO "phone"
+#define MEDIA_INFO_TABLE_FIRST_NAME "first_name"
+#define MEDIA_INFO_TABLE_LAST_NAME "last_name"
+#define MEDIA_INFO_TABLE_FILE_PATH "file_path"
+
+
+
+#define MESSAGE_INFO_TABLE_MESSAGE_ID "msg_id"
+#define MESSAGE_INFO_TABLE_FLAGS "flags"
+#define MESSAGE_INFO_TABLE_FWD_FROM_ID "fwd_from_id"
+#define MESSAGE_INFO_TABLE_FWD_DATE "fwd_date"
+#define MESSAGE_INFO_TABLE_FROM_ID "from_id"
+#define MESSAGE_INFO_TABLE_TO_ID "to_id"
+#define MESSAGE_INFO_TABLE_OUT_MSG "out"
+#define MESSAGE_INFO_TABLE_UNREAD "unread"
+#define MESSAGE_INFO_TABLE_DATE "date"
+#define MESSAGE_INFO_TABLE_SERVICE "service"
+#define MESSAGE_INFO_TABLE_MESSAGE "message"
+#define MESSAGE_INFO_TABLE_MESSAGE_LENGTH "message_len"
+#define MESSAGE_INFO_TABLE_MEDIA_TYPE "media_type"
+#define MESSAGE_INFO_TABLE_MEDIA_ID "media_id"
+#define MESSAGE_INFO_TABLE_UNIQUE_ID "unique_id"
+
+#define CHAT_INFO_TABLE_NAME "chat_info_table"
+
+#define CHAT_INFO_TABLE_CHAT_ID "chat_id"
+#define CHAT_INFO_TABLE_FLAGS "flags"
+#define CHAT_INFO_TABLE_PRINT_TITLE "print_title"
+#define CHAT_INFO_TABLE_STRUCT_VERSION "struct_version"
+#define CHAT_INFO_TABLE_PHOTO_ID "photo_id"
+#define CHAT_INFO_TABLE_PHOTO_PATH "photo_path"
+#define CHAT_INFO_TABLE_TITLE "title"
+#define CHAT_INFO_TABLE_NO_OF_USERS "users_num"
+#define CHAT_INFO_TABLE_USER_LIST_SIZE "user_list_size"
+#define CHAT_INFO_TABLE_USER_LIST_VERSION "user_list_version"
+#define CHAT_INFO_TABLE_INVITER_ID "inviter_id"
+#define CHAT_INFO_TABLE_CHAT_USERS "chat_users"
+#define CHAT_INFO_TABLE_DATE "date"
+#define CHAT_INFO_TABLE_VERSION "version"
+#define CHAT_INFO_TABLE_ADMIN_ID "admin_id"
+
+
+#define PEER_INFO_TABLE_NAME "peer_info_table" //user or group chat or encrypted chat
+
+#define PEER_INFO_TABLE_CHAT_ID "user_id"
+#define PEER_INFO_TABLE_PEER_TYPE "peer_type"
+#define PEER_INFO_TABLE_FLAGS "flags"
+#define PEER_INFO_TABLE_LAST_MESSAGE_ID "message_id"
+#define PEER_INFO_TABLE_LAST_MESSAGE_DATE "message_date"
+#define PEER_INFO_TABLE_PRINT_NAME "print_name"
+#define PEER_INFO_TABLE_STRUCT_VERSION "struct_version"
+#define PEER_INFO_TABLE_NO_OF_UNREAD_MESSAGES "unread_message_count"
+#define PEER_INFO_TABLE_LAST_SEEN_TIME "last_seen"
+
+#define TG_DB_COLUMN_INTEGER "INTEGER"
+#define TG_DB_COLUMN_INTEGER_PRIMARY_KEY "INTEGER PRIMARY KEY NOT NULL"
+#define TG_DB_COLUMN_TEXT "TEXT"
+
+
+void create_data_base_tables();
+
+Eina_List* get_registered_user_info();
+
+Eina_List* get_buddy_list_info();
+
+Eina_List* get_buddy_info(int buddy_id);
+
+tg_message_s* get_message_from_message_table(long long msg_id, char* table_name);
+
+char* get_image_path_from_db(long long media_id);
+
+tg_chat_info_s* get_chat_info(int chat_id);
+
+Eina_List* get_group_chat_details();
+
+Eina_List* get_all_peer_details();
+
+#endif /* TG_DB_WRAPPER_H_ */
diff --git a/TelegramTizen/inc/tg_first_registration.h b/TelegramTizen/inc/tg_first_registration.h
new file mode 100644 (file)
index 0000000..941c96c
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+ * tg_first_registration.h
+ *
+ *  Created on: Jul 6, 2015
+ *      Author: sandeep
+ */
+
+#ifndef TG_FIRST_REGISTRATION_H_
+#define TG_FIRST_REGISTRATION_H_
+
+#include "tg_common.h"
+
+extern void launch_first_registration_cb(void *data);
+
+
+
+#endif /* TG_FIRST_REGISTRATION_H_ */
diff --git a/TelegramTizen/inc/tg_login.h b/TelegramTizen/inc/tg_login.h
new file mode 100644 (file)
index 0000000..b801721
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+ * tg_login.h
+ *
+ *  Created on: May 20, 2015
+ *      Author: sandeep
+ */
+
+#ifndef TG_LOGIN_H_
+#define TG_LOGIN_H_
+
+
+#include "tg_common.h"
+
+extern void launch_login_cb(void *data);
+
+#endif /* TG_LOGIN_H_ */
diff --git a/TelegramTizen/inc/tg_registration.h b/TelegramTizen/inc/tg_registration.h
new file mode 100644 (file)
index 0000000..862469f
--- /dev/null
@@ -0,0 +1,14 @@
+/*
+ * tg_registration.h
+ *
+ *  Created on: May 19, 2015
+ *      Author: sandeep
+ */
+
+#ifndef TG_REGISTRATION_H_
+#define TG_REGISTRATION_H_
+#include "tg_common.h"
+
+extern void launch_registration_cb(void *data);
+
+#endif /* TG_REGISTRATION_H_ */
diff --git a/TelegramTizen/inc/tg_splash_screen.h b/TelegramTizen/inc/tg_splash_screen.h
new file mode 100644 (file)
index 0000000..07bd538
--- /dev/null
@@ -0,0 +1,14 @@
+/*
+ * tg_splash_screen.h
+ *
+ *  Created on: Jun 12, 2015
+ *      Author: sandeep
+ */
+
+#ifndef TG_SPLASH_SCREEN_H_
+#define TG_SPLASH_SCREEN_H_
+#include "tg_common.h"
+
+extern void launch_splash_screen_cb(void *data);
+
+#endif /* TG_SPLASH_SCREEN_H_ */
diff --git a/TelegramTizen/project_def.prop b/TelegramTizen/project_def.prop
new file mode 100644 (file)
index 0000000..253df2b
--- /dev/null
@@ -0,0 +1,11 @@
+APPNAME = telegramtizen
+
+type = app
+profile = mobile-2.4
+
+USER_SRCS = src/telegramtizen.c
+USER_DEFS =
+USER_INC_DIRS = inc
+USER_OBJS =
+USER_LIBS =
+USER_EDCS = res/edje/telegramtizen.edc
diff --git a/TelegramTizen/res/edje/telegram_app.edc b/TelegramTizen/res/edje/telegram_app.edc
new file mode 100644 (file)
index 0000000..25a7b72
--- /dev/null
@@ -0,0 +1,30 @@
+collections {
+   group {
+               name: "main";
+      parts {
+         part {
+               name: "txt_title";
+            type: TEXT;
+            mouse_events: 0;
+            description {
+               state: "default" 0.0;
+                       align: 0.0 0.0;
+                       rel1 { relative: 0.0 0.0; }
+                       rel2 { relative: 0.1 0.5; }
+                       text { font: "Tizen:style=regular"; size: 20; min: 1 1; }
+                       color: 0 0 0 255;
+            }
+         }
+         part {
+               name: "btn_box";
+            type: SWALLOW;            
+            description {
+               state: "default" 0.0;
+                       align: 0.0 0.0;
+                       rel1 { relative: 0.0 0.5; }
+                       rel2 { relative: 0.1 0.1; }                                     
+            }
+         }
+      }
+   }
+}
diff --git a/TelegramTizen/res/edje/telegram_chat_conv.edc b/TelegramTizen/res/edje/telegram_chat_conv.edc
new file mode 100644 (file)
index 0000000..23d64d4
--- /dev/null
@@ -0,0 +1,559 @@
+
+collections
+{   
+       images {
+               image: "chat_bg.jpg" COMP;
+               image: "bubble_rec_bg.#.png" COMP;
+               image: "bubble_sent_bg.#.png" COMP;
+               image: "SplashScreenImage.jpg" COMP;
+               image: "ApplicationIcon.png" COMP;
+               image: "msg_in_photo.9.png" COMP;
+               image: "msg_out_photo.9.png" COMP;
+               image: "call_btn_circle.png" COMP;              
+       }
+       
+       group
+       {
+               name: "splash_screen";
+       parts{
+           part {
+                               name: "swallow.splash_screen,bg";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to, "swallow.splash_screen"; }
+                                       rel2 { relative: 1.0 1.0; to, "swallow.splash_screen"; }
+                                       color: 0 0 0 0;
+                               }
+                       }  
+                       part{
+                       name: "splash_screen_bg_image";
+                       type:IMAGE;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; to, "swallow.splash_screen,bg"; }
+                               rel2 { relative: 1.0 1.0; to, "swallow.splash_screen,bg"; }
+                               image {
+                                               normal: "ApplicationIcon.png";
+                                       }
+                       }
+               }
+               part{
+                       name: "swallow.splash_screen";
+                       type:SWALLOW;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }     
+                               color: 0 0 0 0;                 
+                       }
+               }
+       }       
+       }
+       
+       group
+       {
+               name: "chat_bg_conv";
+       parts{
+           part {
+                               name: "swallow.chat_bg_box,bg";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to, "swallow.chat_bg_box"; }
+                                       rel2 { relative: 1.0 1.0; to, "swallow.chat_bg_box"; }
+                                       color: 0 0 0 0;
+                               }
+                       }  
+                       part{
+                       name: "chat_box_bg_image";
+                       type:IMAGE;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; to, "swallow.chat_bg_box,bg"; }
+                               rel2 { relative: 1.0 1.0; to, "swallow.chat_bg_box,bg"; }
+                               image {
+                                               normal: "chat_bg.jpg";
+                                       }
+                       }
+               }
+               part{
+                       name: "swallow.chat_bg_box";
+                       type:SWALLOW;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }     
+                               color: 0 0 0 0;                 
+                       }
+               }
+       }       
+       }
+       
+    group
+    {
+               name: "chat_conv";
+       parts{
+           part {
+                               name: "swallow.chat_box,bg";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to, "swallow.chat_box"; }
+                                       rel2 { relative: 1.0 1.0; to, "swallow.chat_box"; }
+                                       color: 0 0 0 0;
+                               }
+                       }  
+                       part{
+                       name: "chat_box_bg_image";
+                       type:IMAGE;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; to, "swallow.chat_box,bg"; }
+                               rel2 { relative: 1.0 1.0; to, "swallow.chat_box,bg"; }
+                               image {
+                                               normal: "chat_bg.jpg";
+                                       }
+                       }
+               }
+               part{
+                       name: "swallow.chat_box";
+                       type:SWALLOW;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 0.9; }                             
+                       }
+               }
+               part {
+                               name: "swallow.entry_box,bg";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to, "swallow.entry_box"; }
+                                       rel2 { relative: 1.0 1.0; to, "swallow.entry_box"; }
+                                       color: 0 0 0 0;
+                               }
+                       }  
+                       part{
+                       name: "chat_entry_bg_image";
+                       type:IMAGE;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; to, "swallow.entry_box,bg"; }
+                               rel2 { relative: 1.0 1.0; to, "swallow.entry_box,bg"; }
+                               image {
+                                               normal: "chat_bg.jpg";
+                                       }
+                       }
+               }
+                        
+               part{
+                       name: "swallow.entry_box";
+                       type:SWALLOW;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.9;}
+                               rel2 { relative: 1.0 1.0;}
+                               align: 0.5 1.0;
+                               fixed: 0.5 1.0;
+                               min: 0 100;                                                             
+                               color: 50 100 255 255;
+                       }
+               }
+               
+       }       
+    }
+    
+    group
+    {
+       name: "chat_entry_box";
+       parts{
+               part{
+                       name: "swallow.attach_icon";
+                       type:SWALLOW;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.1; }
+                               rel2 { relative: 0.15 0.9; }
+                               min: 75 75;
+                               max: 75 75;
+                       }
+               }
+               part {
+                               name: "entry,bg";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to, "swallow.text_entry"; }
+                                       rel2 { relative: 1.0 1.0; to, "swallow.text_entry"; }
+                                       color: 192 199 189 255;
+                               }
+                       }               
+               part{
+                       name: "swallow.text_entry";
+                       type:SWALLOW;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: 0.15 0.2; }
+                               rel2 { relative: 0.8 0.9; }
+                       }
+               }
+               part{
+                       name: "swallow.smiely_icon";
+                       type:SWALLOW;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: 0.8 0.1; }
+                               rel2 { relative: 0.9 0.9; }
+                       min: 50 50;
+                               max: 50 50;
+                       }
+               }
+               part{
+                       name: "swallow.send_icon";
+                       type:SWALLOW;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: 0.9 0.1; }
+                               rel2 { relative: 1.0 0.9; }
+                       min: 50 50;
+                               max: 50 50;
+                       }
+               }
+               
+       }
+    }
+    
+    group
+    {
+       name: "chat_display_box";
+       parts{
+               part {
+                               name: "bg";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to, "swallow.chat_box"; }
+                                       rel2 { relative: 1.1 1.0; to, "swallow.chat_box"; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+               part{
+                       name: "swallow.chat_box";
+                       type:SWALLOW;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 1.0; }
+                       }
+               }
+       }
+       }
+       
+       group
+    {
+       name: "chat_send_item_box";
+       parts{
+               part {
+                               name: "chat_send_bg";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to, "swallow.chat_send_text"; }
+                                       rel2 { relative: 1.0 1.0; to, "swallow.chat_send_text"; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+               part{
+                       name: "chat_send_image";
+                       type:IMAGE;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: -0.05 -0.6; to, "chat_send_bg"; }
+                               rel2 { relative: 1.15 1.2; to, "chat_send_bg"; }
+                               image {
+                                   border: 20 46 20 46;                                    
+                                               normal: "bubble_sent_bg.#.png";
+                                       }
+                       }
+               }
+               part{
+                       name: "swallow.chat_send_text";
+                       type:SWALLOW;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 0.9 0.9; }
+                       }
+               }               
+       }
+       }
+       
+       group
+    {
+       name: "chat_recv_item_box";
+       parts{
+               part {
+                               name: "chat_recv_bg";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to, "swallow.chat_recv_text"; }
+                                       rel2 { relative: 1.0 1.0; to, "swallow.chat_recv_text"; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+               part{
+                       name: "chat_recv_image";
+                       type:IMAGE;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: -0.1 -0.6; to, "chat_recv_bg"; }
+                               rel2 { relative: 1.1 1.2; to, "chat_recv_bg"; }
+                               image {
+                                   border: 20 46 20 46;                                    
+                                               normal: "bubble_rec_bg.#.png";
+                                       }
+                       }
+               }
+               part{
+                       name: "swallow.chat_recv_text";
+                       type:SWALLOW;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: 0.05 0.1; }
+                               rel2 { relative: 1.0 0.9; }
+                       }
+               }               
+       }
+       }
+       
+       
+       
+       group
+    {
+       name: "chat_send_pic_item_box";
+       parts{
+               part {
+                               name: "chat_send_pic_bg";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to, "swallow.chat_send_pic"; }
+                                       rel2 { relative: 1.0 1.0; to, "swallow.chat_send_pic"; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+               part{
+                       name: "chat_send_pic_image";
+                       type:IMAGE;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: -0.05 -0.1; to, "chat_send_pic_bg"; }
+                               rel2 { relative: 1.1 1.1; to, "chat_send_pic_bg"; }
+                               image {
+                                   border: 13 12 15 11;                                    
+                                               normal: "msg_out_photo.9.png";
+                                       }
+                       }
+               }
+               part{
+                       name: "swallow.chat_send_pic";
+                       type:SWALLOW;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 0.9 1.0; }
+                       }
+               }               
+       }
+       }
+       
+       group
+    {
+       name: "chat_recv_pic_item_box";
+       parts{
+               part {
+                               name: "chat_recv_pic_bg";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to, "swallow.chat_recv_pic"; }
+                                       rel2 { relative: 1.0 1.0; to, "swallow.chat_recv_pic"; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+               part{
+                       name: "chat_recv_pic_image";
+                       type:IMAGE;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: -0.1 -0.1; to, "chat_recv_pic_bg"; }
+                               rel2 { relative: 1.1 1.1; to, "chat_recv_pic_bg"; }
+                               image {
+                                   border: 13 12 15 11;                                    
+                                               normal: "msg_in_photo.9.png";
+                                       }
+                       }
+               }
+               part{
+                       name: "swallow.chat_recv_pic";
+                       type:SWALLOW;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: 0.1 0.1; }
+                               rel2 { relative: 1.0 1.0; }
+                       }
+               }               
+       }
+       }
+       
+       group
+       {
+       name: "chat_first_registration";
+       parts{
+               part{
+                       name: "swallow.first_name_label";
+                       type:SWALLOW;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: 0.1 0.1; }
+                               rel2 { relative: 0.9 0.2; }
+                       }
+               }
+               
+               part {
+                               name: "first_name_entry,border";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.1 0.21; }
+                                       rel2 { relative: 0.9 0.30; }
+                                       color: 100 100 100 100;
+                               }
+                       }
+               
+               part{
+                       name: "swallow.first_name_entry";
+                       type:SWALLOW;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: 0.1 0.21; }
+                               rel2 { relative: 0.9 0.30; }
+                       }
+               }
+               
+               part{
+                       name: "swallow.last_name_label";
+                       type:SWALLOW;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: 0.1 0.35; }
+                               rel2 { relative: 0.9 0.45; }
+                       }
+               }
+               
+               part {
+                               name: "last_name_entry,border";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.1 0.46; }
+                                       rel2 { relative: 0.9 0.55; }
+                                       color: 100 100 100 100;
+                               }
+                       }
+               part{
+                       name: "swallow.last_name_entry";
+                       type:SWALLOW;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: 0.1 0.46; }
+                               rel2 { relative: 0.9 0.55; }
+                       }
+               }
+               part{
+                       name: "swallow.submit_btn";
+                       type:SWALLOW;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: 0.1 0.56; }
+                               rel2 { relative: 0.9 0.65; }
+                       }
+               }               
+       }               
+       }
+       
+       group
+       {
+               name: "group_chat_entry";
+       parts{
+
+               part{
+                       name: "swallow.group_chat_entry_box";
+                       type:SWALLOW;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; }
+                               rel2 { relative: 1.0 0.2; }                             
+                       }
+               }
+        
+               part{
+                       name: "swallow.group_chat_buddy_list_box";
+                       type:SWALLOW;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.2;}
+                               rel2 { relative: 1.0 1.0;}
+                               align: 0.5 1.0;
+                               fixed: 0.5 1.0;
+                               min: 0 100;                                                             
+                               color: 50 100 255 255;
+                       }
+               }
+       }   
+       }
+       
+       group
+       {
+               name: "group_chat_photo_name_entry";
+       parts{
+               part{
+                       name: "swallow.cam_box";
+                       type:SWALLOW;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: 0.1 0.2; }
+                               rel2 { relative: 0.25 0.8; }                                    
+                       }
+               }
+               
+               part {
+                               name: "entry_box,border";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.3 0.45; }
+                                       rel2 { relative: 0.95 0.75; }
+                                       color: 100 100 100 100;
+                               }
+                       }
+                
+               part{
+                       name: "swallow.entry_box";
+                       type:SWALLOW;
+                       description{
+                               state: "default" 0.0;
+                               rel1 { relative: 0.3 0.45;}
+                               rel2 { relative: 0.95 0.75;}
+                               align: 0.5 1.0;
+                               fixed: 0.5 1.0;
+                               min: 0 100;                                                             
+                               color: 50 100 255 255;
+                       }
+               }
+       }   
+       }
+}
\ No newline at end of file
diff --git a/TelegramTizen/res/edje/telegram_tizen_login.edc b/TelegramTizen/res/edje/telegram_tizen_login.edc
new file mode 100644 (file)
index 0000000..5ccb834
--- /dev/null
@@ -0,0 +1,95 @@
+collections {
+       styles {
+               style {
+                       name: "label,style";
+                       base: "font=Tizen text_class=tizen font_size=40 align=center color=#FF0000 ellipsis=1.0 wrap=char";
+                       tag:  "br" "\n";
+                       tag:  "hilight" "+ font=Tizen:style=Bold";
+                       tag:  "b" "+ font=Tizen:style=Bold";
+                       tag:  "tab" "\t";
+               }
+       }
+
+       group {
+               name: "login";
+               parts {
+                       part {
+                               name: "bg";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "label";
+                               type: TEXTBLOCK; // TEXT
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.3 0.15; }
+                                       rel2 { relative: 0.7 0.20; }
+                                       text {
+                                               style: "label,style";
+                                               text: "Phone Number";
+                                               min: 0 0;
+                                       }
+                               }
+                       }
+                       
+                       part {
+                               name: "entry,border";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.29 0.24; }
+                                       rel2 { relative: 0.60 0.36; }
+                                       color: 100 100 100 100;
+                               }
+                       }
+
+                       part {
+                               name: "entry";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.25; to_x, "label"; }
+                                       rel2 { relative: 0.7 0.35; to_x, "label"; }
+                               }
+                       }
+                       part {
+                               name: "ok_btn";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.75 0.25; to_x, "label"; }
+                                       rel2 { relative: 1.0 0.35; to_x, "label"; }                                     
+                               }
+                       }
+
+                       part {
+                               name: "sms_btn";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.3 0.5; }
+                                       rel2 { relative: 0.7 0.65; }
+                                       color: 100 100 100 100;
+                               }
+                       }
+
+                       part {
+                               name: "call_btn";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.3 0.7; }
+                                       rel2 { relative: 0.7 0.85; }
+                                       color: 100 100 100 100;
+                               }
+                       }
+               }
+} // group
+}
\ No newline at end of file
diff --git a/TelegramTizen/res/edje/telegram_tizen_reg.edc b/TelegramTizen/res/edje/telegram_tizen_reg.edc
new file mode 100644 (file)
index 0000000..47045a1
--- /dev/null
@@ -0,0 +1,239 @@
+collections {
+
+       styles {
+               style {
+                       name: "label,style";
+                       base: "font=Tizen text_class=tizen font_size=40 align=center color=#FF0000 ellipsis=1.0 wrap=char";
+                       tag:  "br" "\n";
+                       tag:  "hilight" "+ font=Tizen:style=Bold";
+                       tag:  "b" "+ font=Tizen:style=Bold";
+                       tag:  "tab" "\t";
+               }
+               style {
+                       name: "message,style,left";
+                       base: "font=Tizen text_class=tizen font_size=30 align=left color=#000000 wrap=char";
+                       tag:  "br" "\n";
+                       tag:  "hilight" "+ font=Tizen:style=Bold";
+                       tag:  "b" "+ font=Tizen:style=Bold";
+                       tag:  "tab" "\t";
+               }
+               style {
+                       name: "message,style,right";
+                       base: "font=Tizen text_class=tizen font_size=30 align=right color=#000000 wrap=char";
+                       tag:  "br" "\n";
+                       tag:  "hilight" "+ font=Tizen:style=Bold";
+                       tag:  "b" "+ font=Tizen:style=Bold";
+                       tag:  "tab" "\t";
+               }
+               
+       }
+
+       images {
+               image: "bubble_rec_bg.#.png" COMP;
+               image: "bubble_sent_bg.#.png" COMP;
+       }
+       
+       base_scale: 1.8;
+       
+       group {
+               name: "bubble,msg";
+               parts {
+                       part {
+                               name: "bg";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: -0.1 0.0; to, "bubble,text"; }
+                                       rel2 { relative: 1.1 1.0; to, "bubble,text"; }
+                                       color: 0 0 0 0;
+                               }
+                               
+                               description {
+                                       state: "right" 0.0;
+                                       rel1 { relative: 0.1 0.0; to, "bubble,text"; }
+                                       rel2 { relative: 1.2 1.0; to, "bubble,text"; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+               
+                       part {
+                               name: "bubble,image,recv";
+                               type: IMAGE;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to, "bg"; }
+                                       rel2 { relative: 1.0 1.0; to, "bg"; }
+                                       image {                                 
+                                               border: 20 46 20 46;
+                                               normal: "bubble_rec_bg.#.png";
+                                       }
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       
+                       part {
+                               name: "bubble,image,sent";
+                               type: IMAGE;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: -0.1 0.0; to, "bg"; }
+                                       rel2 { relative: 0.9 1.0; to, "bg"; }
+                                       image {                                 
+                                               border: 20 46 20 46;
+                                               normal: "bubble_sent_bg.#.png";
+                                       }
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       
+                       part {
+                               name: "bubble,text";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.1 0.1; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                               description {
+                                       state: "right" 0.0;
+                                       rel1 { relative: -0.1 0.0; }
+                                       rel2 { relative: 0.9 1.0; }
+                               }
+                       }
+                       
+                       part {
+                               name: "timestamp,text";
+                               type: TEXTBLOCK;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 1.0 0.5; to, "bg"; offset: 30 0; }
+                                       rel2 { relative: 1.3 0.95; to, "bg"; }
+                                       text {
+                                               style: "message,style,left";
+                                       }
+                               }
+                               description {
+                                       state: "right" 0.0;
+                                       rel1 { relative: -0.3 0.5; to, "bg"; offset: -30 0; }
+                                       rel2 { relative:  -0.15 0.95; to, "bg"; }                               
+                                       text {
+                                               style: "message,style,right";
+                                       }
+                               }
+                       }
+               }
+               
+               programs {
+                       program {
+                               name: "set,sent,bg";                            
+                               source: "bubble,msg";
+                               signal: "set,sent,bg";
+                               action: STATE_SET "show" 0.0;
+                               target: "bubble,image,sent";
+                       }
+                       
+                       program {
+                               name: "set,recv,bg";
+                               source: "bubble,msg";
+                               signal: "set,recv,bg";
+                               action: STATE_SET "show" 0.0;
+                               target: "bubble,image,recv";
+                       }
+                       
+                       program {
+                               name: "set,recv,text";
+                               source: "bubble,msg";
+                               signal: "set,sent,bg";
+                               action: STATE_SET "right" 0.0;
+                               target: "timestamp,text";
+                               target: "bubble,text";
+                               target: "bg";
+                       }
+               }
+       }
+
+
+       group {
+               name: "login";
+               parts {
+                       part {
+                               name: "bg";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                                       color: 255 255 255 255;
+                               }
+                       }
+
+                       part {
+                               name: "label";
+                               type: TEXTBLOCK; // TEXT
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.3 0.15; }
+                                       rel2 { relative: 0.7 0.20; }
+                                       text {
+                                               style: "label,style";
+                                               text: "Phone Number";
+                                               min: 0 0;
+                                       }
+                               }
+                       }
+                       
+                       part {
+                               name: "entry,border";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.29 0.24; }
+                                       rel2 { relative: 0.71 0.36; }
+                                       color: 100 100 100 100;
+                               }
+                       }
+
+                       part {
+                               name: "entry";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.25; to_x, "label"; }
+                                       rel2 { relative: 1.0 0.35; to_x, "label"; }
+                               }
+                       }
+
+                       part {
+                               name: "sms_btn";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.3 0.5; }
+                                       rel2 { relative: 0.7 0.65; }
+                                       color: 100 100 100 100;
+                               }
+                       }
+
+                       part {
+                               name: "call_btn";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.3 0.7; }
+                                       rel2 { relative: 0.7 0.85; }
+                                       color: 100 100 100 100;
+                               }
+                       }
+               }
+} // group
+}
\ No newline at end of file
diff --git a/TelegramTizen/res/edje/telegramtizen.edc b/TelegramTizen/res/edje/telegramtizen.edc
new file mode 100644 (file)
index 0000000..00751da
--- /dev/null
@@ -0,0 +1,14 @@
+collections {
+   group { name: "main";
+      parts {
+         part { name: "txt_title";
+            type: TEXT;
+            mouse_events: 0;
+            description { state: "default" 0.0;
+               text { font: "Tizen:style=regular"; size: 20; min: 1 1; align: 0.5 0; }
+               color: 0 0 0 255;
+            }
+         }
+      }
+   }
+}
diff --git a/TelegramTizen/res/images/ApplicationIcon.png b/TelegramTizen/res/images/ApplicationIcon.png
new file mode 100644 (file)
index 0000000..0ad2da5
Binary files /dev/null and b/TelegramTizen/res/images/ApplicationIcon.png differ
diff --git a/TelegramTizen/res/images/SplashScreenImage.jpg b/TelegramTizen/res/images/SplashScreenImage.jpg
new file mode 100644 (file)
index 0000000..9025000
Binary files /dev/null and b/TelegramTizen/res/images/SplashScreenImage.jpg differ
diff --git a/TelegramTizen/res/images/attach_icon.png b/TelegramTizen/res/images/attach_icon.png
new file mode 100755 (executable)
index 0000000..7f1bacc
Binary files /dev/null and b/TelegramTizen/res/images/attach_icon.png differ
diff --git a/TelegramTizen/res/images/attach_icon_old.png b/TelegramTizen/res/images/attach_icon_old.png
new file mode 100644 (file)
index 0000000..707391f
Binary files /dev/null and b/TelegramTizen/res/images/attach_icon_old.png differ
diff --git a/TelegramTizen/res/images/blur_img.jpg b/TelegramTizen/res/images/blur_img.jpg
new file mode 100755 (executable)
index 0000000..12a73f4
Binary files /dev/null and b/TelegramTizen/res/images/blur_img.jpg differ
diff --git a/TelegramTizen/res/images/bubble_a.9.png b/TelegramTizen/res/images/bubble_a.9.png
new file mode 100644 (file)
index 0000000..56aaf29
Binary files /dev/null and b/TelegramTizen/res/images/bubble_a.9.png differ
diff --git a/TelegramTizen/res/images/bubble_b.9.png b/TelegramTizen/res/images/bubble_b.9.png
new file mode 100644 (file)
index 0000000..3686fb3
Binary files /dev/null and b/TelegramTizen/res/images/bubble_b.9.png differ
diff --git a/TelegramTizen/res/images/bubble_rec_bg.#.png b/TelegramTizen/res/images/bubble_rec_bg.#.png
new file mode 100755 (executable)
index 0000000..974d60e
Binary files /dev/null and b/TelegramTizen/res/images/bubble_rec_bg.#.png differ
diff --git a/TelegramTizen/res/images/bubble_sent_bg.#.png b/TelegramTizen/res/images/bubble_sent_bg.#.png
new file mode 100755 (executable)
index 0000000..08fd35b
Binary files /dev/null and b/TelegramTizen/res/images/bubble_sent_bg.#.png differ
diff --git a/TelegramTizen/res/images/buddy.jpeg b/TelegramTizen/res/images/buddy.jpeg
new file mode 100644 (file)
index 0000000..8d67f0a
Binary files /dev/null and b/TelegramTizen/res/images/buddy.jpeg differ
diff --git a/TelegramTizen/res/images/call_btn_circle.png b/TelegramTizen/res/images/call_btn_circle.png
new file mode 100644 (file)
index 0000000..062d98e
Binary files /dev/null and b/TelegramTizen/res/images/call_btn_circle.png differ
diff --git a/TelegramTizen/res/images/camera-icon.png b/TelegramTizen/res/images/camera-icon.png
new file mode 100644 (file)
index 0000000..19604b8
Binary files /dev/null and b/TelegramTizen/res/images/camera-icon.png differ
diff --git a/TelegramTizen/res/images/cancel_bn_press.png b/TelegramTizen/res/images/cancel_bn_press.png
new file mode 100755 (executable)
index 0000000..b75e449
Binary files /dev/null and b/TelegramTizen/res/images/cancel_bn_press.png differ
diff --git a/TelegramTizen/res/images/chat_bg.jpg b/TelegramTizen/res/images/chat_bg.jpg
new file mode 100644 (file)
index 0000000..1f76891
Binary files /dev/null and b/TelegramTizen/res/images/chat_bg.jpg differ
diff --git a/TelegramTizen/res/images/message_line.png b/TelegramTizen/res/images/message_line.png
new file mode 100644 (file)
index 0000000..dc212e6
Binary files /dev/null and b/TelegramTizen/res/images/message_line.png differ
diff --git a/TelegramTizen/res/images/msg_in_photo.9.png b/TelegramTizen/res/images/msg_in_photo.9.png
new file mode 100755 (executable)
index 0000000..0a73e2e
Binary files /dev/null and b/TelegramTizen/res/images/msg_in_photo.9.png differ
diff --git a/TelegramTizen/res/images/msg_out_photo.9.png b/TelegramTizen/res/images/msg_out_photo.9.png
new file mode 100755 (executable)
index 0000000..fc7d567
Binary files /dev/null and b/TelegramTizen/res/images/msg_out_photo.9.png differ
diff --git a/TelegramTizen/res/images/ok_bn_press.png b/TelegramTizen/res/images/ok_bn_press.png
new file mode 100755 (executable)
index 0000000..fe05dd9
Binary files /dev/null and b/TelegramTizen/res/images/ok_bn_press.png differ
diff --git a/TelegramTizen/res/images/robo_buddy.png b/TelegramTizen/res/images/robo_buddy.png
new file mode 100644 (file)
index 0000000..d9babe4
Binary files /dev/null and b/TelegramTizen/res/images/robo_buddy.png differ
diff --git a/TelegramTizen/res/images/search_icon.png b/TelegramTizen/res/images/search_icon.png
new file mode 100644 (file)
index 0000000..9e87502
Binary files /dev/null and b/TelegramTizen/res/images/search_icon.png differ
diff --git a/TelegramTizen/res/images/send_icon.png b/TelegramTizen/res/images/send_icon.png
new file mode 100644 (file)
index 0000000..4aabe55
Binary files /dev/null and b/TelegramTizen/res/images/send_icon.png differ
diff --git a/TelegramTizen/res/images/smiley_icon.png b/TelegramTizen/res/images/smiley_icon.png
new file mode 100755 (executable)
index 0000000..ea4e65f
Binary files /dev/null and b/TelegramTizen/res/images/smiley_icon.png differ
diff --git a/TelegramTizen/res/images/smiley_icon_old.png b/TelegramTizen/res/images/smiley_icon_old.png
new file mode 100644 (file)
index 0000000..8069b7c
Binary files /dev/null and b/TelegramTizen/res/images/smiley_icon_old.png differ
diff --git a/TelegramTizen/shared/res/telegramtizen.png b/TelegramTizen/shared/res/telegramtizen.png
new file mode 100644 (file)
index 0000000..9765b1b
Binary files /dev/null and b/TelegramTizen/shared/res/telegramtizen.png differ
diff --git a/TelegramTizen/src/contact_selection_view.c b/TelegramTizen/src/contact_selection_view.c
new file mode 100644 (file)
index 0000000..49af302
--- /dev/null
@@ -0,0 +1,324 @@
+/*
+ * contact_selection_view.c
+ *
+ *  Created on: Jul 9, 2015
+ *      Author: sandeep
+ */
+
+#include "contact_selection_view.h"
+#include "group_chat_entry_view.h"
+
+void on_buddy_selected(void *data, Evas_Object *obj, void *event_info)
+{
+       Elm_Object_Item *it = event_info;
+       elm_genlist_item_selected_set(it, EINA_FALSE);
+       Evas_Object *layout = elm_object_item_part_content_get(event_info, "elm.swallow.end");
+    Evas_Object *checkbox = elm_object_part_content_get(layout, "elm.swallow.content");
+    Eina_Bool checked = elm_check_state_get(checkbox);
+    checked = !checked;
+    elm_check_state_set(checkbox, checked);
+
+    int id = (int)data;
+    appdata_s* ad = evas_object_data_get(obj, "app_data");
+
+    if (ad && ad->buddy_list && eina_list_count(ad->buddy_list) > 0) {
+       if(id == 0) {
+               for (int i = 0 ; i < eina_list_count(ad->buddy_list) ; i++) {
+                       user_data_with_pic_s *item = eina_list_nth(ad->buddy_list, i);
+                       user_data_s* user = item->use_data;
+                       user->is_selected = checked;
+
+
+                               Elm_Object_Item* list_item = elm_genlist_nth_item_get(obj, i+1);
+                               if (list_item) {
+                                       elm_genlist_item_selected_set(list_item, EINA_FALSE);
+                                       Evas_Object *llayout = elm_object_item_part_content_get(list_item, "elm.swallow.end");
+                                       Evas_Object *lcheckbox = elm_object_part_content_get(llayout, "elm.swallow.content");
+                                       elm_check_state_set(lcheckbox, checked);
+                               }
+               }
+       } else {
+                       user_data_with_pic_s *item = eina_list_nth(ad->buddy_list, id - 1);
+                       user_data_s* user = item->use_data;
+                       user->is_selected = checked;
+
+                       if (!checked) {
+                               Elm_Object_Item* list_item = elm_genlist_nth_item_get(obj, 0);
+                               if (list_item) {
+                                       elm_genlist_item_selected_set(list_item, EINA_FALSE);
+                                       Evas_Object *llayout = elm_object_item_part_content_get(list_item, "elm.swallow.end");
+                                       Evas_Object *lcheckbox = elm_object_part_content_get(llayout, "elm.swallow.content");
+                                       elm_check_state_set(lcheckbox, EINA_FALSE);
+                               }
+                       } else {
+                               Eina_Bool all_items_selected = EINA_TRUE;
+                               for (int i = 0 ; i < eina_list_count(ad->buddy_list) ; i++) {
+                                       user_data_with_pic_s *item = eina_list_nth(ad->buddy_list, i);
+                                       user_data_s* user = item->use_data;
+                                       if (!user->is_selected) {
+                                               all_items_selected = EINA_FALSE;
+                                               break;
+                                       }
+                               }
+                               Elm_Object_Item* list_item = elm_genlist_nth_item_get(obj, 0);
+                               if (list_item) {
+                                       elm_genlist_item_selected_set(list_item, EINA_FALSE);
+                                       Evas_Object *llayout = elm_object_item_part_content_get(list_item, "elm.swallow.end");
+                                       Evas_Object *lcheckbox = elm_object_part_content_get(llayout, "elm.swallow.content");
+                                       elm_check_state_set(lcheckbox, all_items_selected);
+                               }
+                       }
+       }
+    }
+}
+
+char* on_buddy_name_get_cb(void *data, Evas_Object *obj, const char *part)
+{
+       int id = (int)data;
+       appdata_s* ad = evas_object_data_get(obj, "app_data");
+
+       if (id == 0 && ad->buddy_list && eina_list_count(ad->buddy_list) > 0) {
+               char buf[512] = {'\0'};
+               snprintf(buf, 512, "<align=left><font_size=35><color=#000000>%s</color></font_size></align>", "Select all");
+               return strdup(buf);
+       }
+
+       user_data_with_pic_s *item = eina_list_nth(ad->buddy_list, id - 1);
+       user_data_s* user = item->use_data;
+       if (!strcmp(part,"elm.text")){
+               char buf[512] = {'\0'};
+               snprintf(buf, 512, "<align=left><font_size=30><color=#000000>%s</color></font_size></align>", user->print_name);
+               return strdup(buf);
+       }
+       return NULL;
+}
+
+void on_item_checkbox_sel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       int id = (int)data;
+       appdata_s* ad = evas_object_data_get(obj, "app_data");
+       Eina_Bool checked = elm_check_state_get(obj);
+       Evas_Object* buddy_gen_list = evas_object_data_get(obj, "buddy_gen_list");
+    if (ad && ad->buddy_list && eina_list_count(ad->buddy_list) > 0) {
+       if(id == 0) {
+               for (int i = 0 ; i < eina_list_count(ad->buddy_list) ; i++) {
+                       user_data_with_pic_s *item = eina_list_nth(ad->buddy_list, i);
+                       user_data_s* user = item->use_data;
+                       user->is_selected = checked;
+
+                               Elm_Object_Item* list_item = elm_genlist_nth_item_get(buddy_gen_list, i + 1);
+                               if (list_item) {
+                                       elm_genlist_item_selected_set(list_item, EINA_FALSE);
+                                       Evas_Object *llayout = elm_object_item_part_content_get(list_item, "elm.swallow.end");
+                                       Evas_Object *lcheckbox = elm_object_part_content_get(llayout, "elm.swallow.content");
+                                       elm_check_state_set(lcheckbox, checked);
+                               }
+               }
+       } else {
+                       user_data_with_pic_s *item = eina_list_nth(ad->buddy_list, id - 1);
+                       user_data_s* user = item->use_data;
+                       user->is_selected = checked;
+
+                       if (!checked) {
+                               Elm_Object_Item* list_item = elm_genlist_nth_item_get(buddy_gen_list, 0);
+                               if (list_item) {
+                                       elm_genlist_item_selected_set(list_item, EINA_FALSE);
+                                       Evas_Object *llayout = elm_object_item_part_content_get(list_item, "elm.swallow.end");
+                                       Evas_Object *lcheckbox = elm_object_part_content_get(llayout, "elm.swallow.content");
+                                       elm_check_state_set(lcheckbox, EINA_FALSE);
+                               }
+                       } else {
+                               Eina_Bool all_items_selected = EINA_TRUE;
+                               for (int i = 0 ; i < eina_list_count(ad->buddy_list) ; i++) {
+                                       user_data_with_pic_s *item = eina_list_nth(ad->buddy_list, i);
+                                       user_data_s* user = item->use_data;
+                                       if (!user->is_selected) {
+                                               all_items_selected = EINA_FALSE;
+                                               break;
+                                       }
+                               }
+                               Elm_Object_Item* list_item = elm_genlist_nth_item_get(buddy_gen_list, 0);
+                               if (list_item) {
+                                       elm_genlist_item_selected_set(list_item, EINA_FALSE);
+                                       Evas_Object *llayout = elm_object_item_part_content_get(list_item, "elm.swallow.end");
+                                       Evas_Object *lcheckbox = elm_object_part_content_get(llayout, "elm.swallow.content");
+                                       elm_check_state_set(lcheckbox, all_items_selected);
+                               }
+                       }
+       }
+    }
+}
+
+Evas_Object* on_buddy_selection_part_content_get_cb(void *data, Evas_Object *obj, const char *part)
+{
+
+       Evas_Object *eo = NULL;
+
+       if (!strcmp(part, "elm.swallow.icon")) {
+               Evas_Object *image = NULL;
+               int id = (int) data;
+               appdata_s* ad = evas_object_data_get(obj, "app_data");
+
+               if (id == 0 && ad->buddy_list && eina_list_count(ad->buddy_list) > 0) {
+                       return eo;
+               }
+
+               user_data_with_pic_s *item = eina_list_nth(ad->buddy_list, id - 1);
+               user_data_s* user = item->use_data;
+
+               if (user->photo_path && strcmp(user->photo_path, "") != 0) {
+                       image = buddy_widget_main_icon_get(user->photo_path, obj);
+               } else {
+                       image = buddy_widget_main_icon_get(ui_utils_get_resource(FM_ICON_ROBO_BUDDY), obj);
+               }
+
+               item->contact_icon = image;
+               evas_object_event_callback_add(item->contact_icon, EVAS_CALLBACK_DEL, buddy_icon_del_cb, item);
+
+               if(image) {
+                       eo = elm_layout_add(obj);
+                       elm_layout_theme_set(eo, "layout", "list/C/type.3", "default");
+                       elm_layout_content_set(eo, "elm.swallow.content", image);
+               }
+       } else if (!strcmp(part, "elm.swallow.end")) {
+               int id = (int) data;
+               appdata_s* ad = evas_object_data_get(obj, "app_data");
+               if (id == 0 && ad->buddy_list && eina_list_count(ad->buddy_list) > 0) {
+
+                       Eina_Bool all_items_selected = evas_object_data_get(obj, "all_selected");
+
+                       eo = elm_layout_add(obj);
+                       elm_layout_theme_set(eo, "layout", "list/C/type.2", "default");
+                       Evas_Object *check = elm_check_add(obj);
+                       elm_check_state_set(check, all_items_selected);
+                       elm_object_focus_set(check, EINA_FALSE);
+                       evas_object_propagate_events_set(check, EINA_FALSE);
+                       evas_object_data_set(check, "app_data", ad);
+                       evas_object_data_set(check, "buddy_gen_list", obj);
+                       evas_object_smart_callback_add(check, "changed", on_item_checkbox_sel_cb, data);
+                       elm_layout_content_set(eo, "elm.swallow.content", check);
+                       return eo;
+               }
+
+               user_data_with_pic_s *item = eina_list_nth(ad->buddy_list, id - 1);
+               user_data_s* user = item->use_data;
+
+               eo = elm_layout_add(obj);
+               elm_layout_theme_set(eo, "layout", "list/C/type.2", "default");
+               Evas_Object *check = elm_check_add(obj);
+               elm_check_state_set(check, user->is_selected);
+               elm_check_state_pointer_set(check, &user->is_selected);
+               elm_object_focus_set(check, EINA_FALSE);
+               evas_object_propagate_events_set(check, EINA_FALSE);
+               evas_object_data_set(check, "app_data", ad);
+               evas_object_data_set(check, "buddy_gen_list", obj);
+               evas_object_smart_callback_add(check, "changed", on_item_checkbox_sel_cb, data);
+               elm_layout_content_set(eo, "elm.swallow.content", check);
+               return eo;
+       } else {
+
+       }
+
+       return eo;
+}
+
+void on_done_buton_clicked(void *data, Evas_Object *object, void *event_info)
+{
+       int selected_item_count = 0;
+       appdata_s* ad = data;
+       if (ad && ad->buddy_list) {
+               for (int i = 0 ; i < eina_list_count(ad->buddy_list) ; i++) {
+                       user_data_with_pic_s *item = eina_list_nth(ad->buddy_list, i);
+                       user_data_s* user = item->use_data;
+                       if (user->is_selected) {
+                               selected_item_count++;
+                       }
+               }
+       }
+
+       if (selected_item_count > 1) {
+               appdata_s* ad = data;
+               elm_naviframe_item_pop(ad->nf);
+               // Load chat name entry view
+               launch_group_chat_name_entry_view(ad);
+       } else {
+               show_toast(ad, "Select atleast 2 buddies.");
+       }
+}
+
+void on_cancel_buton_clicked(void *data, Evas_Object *object, void *event_info)
+{
+       appdata_s* ad = data;
+       if (ad && ad->buddy_list) {
+               for (int i = 0 ; i < eina_list_count(ad->buddy_list) ; i++) {
+                       user_data_with_pic_s *item = eina_list_nth(ad->buddy_list, i);
+                       user_data_s* user = item->use_data;
+                       user->is_selected = EINA_FALSE;
+               }
+       }
+       elm_naviframe_item_pop(ad->nf);
+       ad->current_app_state = TG_BUDDY_LIST_STATE;
+       evas_object_show(ad->panel);
+}
+
+void launch_contact_selction_view(void *data)
+{
+       appdata_s* ad = data;
+       ad->current_app_state = TG_BUDDY_LIST_SELECTION_STATE;
+       elm_layout_theme_set(ad->layout, "layout", "application", "default");
+       static Elm_Genlist_Item_Class itc;
+
+       Evas_Object* buddy_gen_list = elm_genlist_add(ad->nf);
+       elm_list_mode_set(buddy_gen_list, ELM_LIST_COMPRESS);
+       elm_genlist_decorate_mode_set(buddy_gen_list, ELM_LIST_COMPRESS);
+       evas_object_size_hint_weight_set(buddy_gen_list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(buddy_gen_list, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       evas_object_data_set(buddy_gen_list, "app_data", ad);
+       Eina_Bool all_items_selected = EINA_FALSE;
+       evas_object_data_set(buddy_gen_list, "all_selected", (void*)all_items_selected);
+
+       itc.item_style = "default_style";
+       itc.func.text_get = on_buddy_name_get_cb;
+       itc.func.content_get = on_buddy_selection_part_content_get_cb;
+       itc.func.state_get = NULL;
+       itc.func.del = NULL;
+
+       int size = 0;
+       if (ad->buddy_list) {
+               size = eina_list_count(ad->buddy_list);
+               size++;
+       } else {
+               size = 1; // no items
+       }
+
+       for (int i = 0; i < size; i++) {
+               elm_genlist_item_append(buddy_gen_list, &itc, (void*)i, NULL, ELM_GENLIST_ITEM_NONE, on_buddy_selected, (void*)i);
+       }
+
+       evas_object_show(buddy_gen_list);
+
+       Evas_Object* done_btn = elm_button_add(ad->layout);
+       elm_object_style_set(done_btn, "naviframe/title_icon");
+       Evas_Object* done_icon = elm_image_add(ad->layout);
+       elm_image_file_set(done_icon, ui_utils_get_resource(FM_OK_BUTTON), NULL);
+       evas_object_smart_callback_add(done_btn, "clicked", on_done_buton_clicked, ad);
+       elm_object_content_set(done_btn, done_icon);
+       evas_object_show(done_btn);
+
+       Evas_Object* cancel_btn = elm_button_add(ad->layout);
+       elm_object_style_set(cancel_btn, "naviframe/title_icon");
+       Evas_Object* cancel_icon = elm_image_add(ad->layout);
+       elm_image_file_set(cancel_icon, ui_utils_get_resource(FM_CANCEL_BUTTON), NULL);
+       evas_object_smart_callback_add(cancel_btn, "clicked", on_cancel_buton_clicked, ad);
+       elm_object_content_set(cancel_btn, cancel_icon);
+       evas_object_show(cancel_btn);
+
+       Elm_Object_Item* buddy_sel_nav_item = NULL;
+       buddy_sel_nav_item = elm_naviframe_item_push(ad->nf, "Select friends", NULL, NULL, buddy_gen_list, NULL);
+       elm_object_item_part_content_set(buddy_sel_nav_item, "title_right_btn", done_btn);
+       elm_object_item_part_content_set(buddy_sel_nav_item, "title_left_btn", cancel_btn);
+
+}
+
+
diff --git a/TelegramTizen/src/contacts_common.c b/TelegramTizen/src/contacts_common.c
new file mode 100644 (file)
index 0000000..4717f0a
--- /dev/null
@@ -0,0 +1,181 @@
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "contacts_common.h"
+#include "logger.h"
+#include <contacts.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <Eina.h>
+
+
+
+#define YEAR_BASE           1900
+#define YEAR_FACTOR         10000
+#define MONTH_BASE          1
+#define MONTH_FACTOR        100
+
+#define DATE_STRING_LENGTH  11
+
+static const char * const _common_contact_fields_names[] =
+{
+    "Phone",
+    "First Name",
+    "Last Name",
+    "Phone Number",
+    "Email",
+    "Url",
+    "Company",
+    "Birthday",
+    "Note"
+};
+
+const char *sc_common_get_contact_field_name(sc_common_contact_fields field_type)
+{
+    RETVM_IF(CF_MAX <= field_type || CF_ADDRESSBOOK > field_type, NULL, "incorrect field type");
+    return _common_contact_fields_names[field_type];
+}
+
+void sc_common_get_contact_properties(sc_common_contact_fields field_type, unsigned *parent_property_id, const char **child_uri, unsigned *child_property_id)
+{
+    unsigned temp_parent_property_id = 0;
+    const char *temp_child_uri = NULL;
+    unsigned temp_child_property_id = 0;
+    switch(field_type)
+    {
+        case CF_ADDRESSBOOK:
+        {
+            //Not needed
+            break;
+        }
+        case CF_FIRST_NAME:
+        {
+            temp_parent_property_id = _contacts_contact.name;
+            temp_child_uri = _contacts_name._uri;
+            temp_child_property_id = _contacts_name.first;
+            break;
+        }
+        case CF_LAST_NAME:
+        {
+            temp_parent_property_id = _contacts_contact.name;
+            temp_child_uri = _contacts_name._uri;
+            temp_child_property_id = _contacts_name.last;
+            break;
+        }
+        case CF_PHONE_NUMBER:
+        {
+            temp_parent_property_id = _contacts_contact.number;
+            temp_child_uri = _contacts_number._uri;
+            temp_child_property_id = _contacts_number.number;
+            break;
+        }
+        case CF_EMAIL:
+        {
+            temp_parent_property_id = _contacts_contact.email;
+            temp_child_uri = _contacts_email._uri;
+            temp_child_property_id = _contacts_email.email;
+            break;
+        }
+        case CF_URL:
+        {
+            temp_parent_property_id = _contacts_contact.url;
+            temp_child_uri = _contacts_url._uri;
+            temp_child_property_id = _contacts_url.url;
+            break;
+        }
+        case CF_COMPANY:
+        {
+            temp_parent_property_id = _contacts_contact.company;
+            temp_child_uri = _contacts_company._uri;
+            temp_child_property_id = _contacts_company.name;
+            break;
+        }
+        case CF_BIRTHDAY:
+        {
+            temp_parent_property_id = _contacts_contact.event;
+            temp_child_uri = _contacts_event._uri;
+            temp_child_property_id = _contacts_event.date;
+            break;
+        }
+        case CF_NOTE:
+        {
+            temp_parent_property_id = _contacts_contact.note;
+            temp_child_uri = _contacts_note._uri;
+            temp_child_property_id = _contacts_note.note;
+            break;
+        }
+        case CF_MAX:
+        {
+            //Not correct field type
+            break;
+        }
+    }
+    if(parent_property_id)
+    {
+        *parent_property_id = temp_parent_property_id;
+    }
+    if(child_uri)
+    {
+        *child_uri = temp_child_uri;
+    }
+    if(child_property_id)
+    {
+        *child_property_id = temp_child_property_id;
+    }
+}
+
+int sc_common_date_to_int(const struct tm *date)
+{
+    if(!date)
+    {
+        time_t current_time = time(NULL);
+        date = localtime(&current_time);
+    }
+    return (date->tm_year + YEAR_BASE) * YEAR_FACTOR
+         + (date->tm_mon + MONTH_BASE) * MONTH_FACTOR
+         +  date->tm_mday;
+}
+
+struct tm sc_common_int_to_date(int date_value)
+{
+    struct tm date = {
+        .tm_mday = date_value % MONTH_FACTOR,
+        .tm_mon = (date_value % YEAR_FACTOR) / MONTH_FACTOR - 1,
+        .tm_year = date_value / YEAR_FACTOR - 1900
+    };
+    return date;
+}
+
+char *sc_common_date_to_str(struct tm *date)
+{
+    char *ret_str = malloc(DATE_STRING_LENGTH);
+    if(ret_str)
+    {
+        sprintf(ret_str, "%d/%d/%d", date->tm_year + 1900, date->tm_mon + 1, date->tm_mday);
+    }
+    return ret_str;
+}
+
+char *sc_common_trim_spaces_in_string(const char *str)
+{
+    Eina_Strbuf *strbuff = eina_strbuf_new();
+    RETVM_IF(!strbuff, NULL, "strbuff is not created");
+    eina_strbuf_append(strbuff, str);
+    eina_strbuf_trim(strbuff);
+    char *ret_str = strdup(eina_strbuf_string_get(strbuff));
+    eina_strbuf_free(strbuff);
+    return ret_str;
+}
diff --git a/TelegramTizen/src/device_contacts_manager.c b/TelegramTizen/src/device_contacts_manager.c
new file mode 100644 (file)
index 0000000..528bd33
--- /dev/null
@@ -0,0 +1,141 @@
+/*
+ * device_contacts_manager.c
+ *
+ *  Created on: Jul 7, 2015
+ *      Author: sandeep
+ */
+
+#include "device_contacts_manager.h"
+#include "contacts_common.h"
+#include "contacts-record-utils.h"
+#include "contacts-list-utils.h"
+#include "contacts-db-utils.h"
+
+bool sc_cdetails_get_contact_val(sc_common_contact_fields field_type, int contact_id, char **value)
+{
+    RETVM_IF(field_type >= CF_MAX || field_type < CF_PHONE_NUMBER, false, "incorrect field type");
+    RETVM_IF(NULL == value, false, "pointer to value is null");
+
+    bool is_success = false;
+    unsigned parent_property_id = 0, child_property_id = 0;
+    char *tmp_value = NULL;
+    sc_common_get_contact_properties(field_type, &parent_property_id, NULL, &child_property_id);
+
+    contacts_record_h contact_record = NULL;
+    if(sc_db_utils_is_success(contacts_db_get_record(_contacts_contact._uri, contact_id, &contact_record)))
+    {
+        if(CF_BIRTHDAY == field_type)
+        {
+            int ivalue = 0;
+            if( sc_record_utils_get_child_int(contact_record, parent_property_id, child_property_id, &ivalue))
+            {
+                struct tm date = sc_common_int_to_date(ivalue);
+                *value = sc_common_date_to_str(&date);
+                is_success = true;
+            }
+        }
+        else
+        {
+            if( sc_record_utils_get_child_str_p(contact_record, parent_property_id, child_property_id, &tmp_value)
+             && tmp_value)
+            {
+                *value = strdup(tmp_value);
+                is_success = true;
+            }
+        }
+        contacts_record_destroy(contact_record, false);
+    }
+    return is_success;
+}
+
+
+Eina_List* get_contact_list_from_device_db()
+{
+       Eina_List* contact_list = NULL;
+
+       contacts_record_h record = NULL;
+       contacts_list_h person_list = NULL;
+
+    if(sc_db_utils_is_success(contacts_db_get_all_records(_contacts_person._uri, 0, 0, &person_list)))
+    {
+        CONTACTS_LIST_FOREACH(person_list, record)
+        {
+            char *name = NULL;
+            int id = 0;
+            if (sc_db_utils_is_success(contacts_record_get_str_p(record, _contacts_person.display_name, &name))
+                         && sc_db_utils_is_success(contacts_record_get_int(record, _contacts_person.id, &id)))
+            {
+               contact_data_s* contact_data = (contact_data_s*)malloc(sizeof(contact_data_s));
+               contact_data->display_name = NULL;
+               contact_data->first_name = NULL;
+               contact_data->last_name = NULL;
+               contact_data->phone_number = NULL;
+
+               contact_data->contact_id = id;
+               contact_data->display_name = strdup(elm_entry_utf8_to_markup(name));
+
+                char *first_name = NULL;
+                if(sc_cdetails_get_contact_val(CF_FIRST_NAME, contact_data->contact_id, &first_name))
+                {
+                       if (first_name) {
+                               contact_data->first_name = strdup(elm_entry_utf8_to_markup(first_name));
+                               free(first_name);
+                       }
+                }
+
+                char *last_name = NULL;
+                if(sc_cdetails_get_contact_val(CF_LAST_NAME, contact_data->contact_id, &last_name))
+                {
+                       if (last_name) {
+                               contact_data->last_name = strdup(elm_entry_utf8_to_markup(last_name));
+                               free(last_name);
+                       }
+                }
+
+                char *phone_number = NULL;
+                if(sc_cdetails_get_contact_val(CF_PHONE_NUMBER, contact_data->contact_id, &phone_number))
+                {
+                       if (phone_number) {
+                               contact_data->phone_number = strdup(elm_entry_utf8_to_markup(phone_number));
+                               free(phone_number);
+                       }
+                }
+
+                if (contact_data->phone_number == NULL) {
+
+
+                       if (contact_data->display_name) {
+                               free(contact_data->display_name);
+                               contact_data->display_name = NULL;
+                       }
+
+                       if (contact_data->first_name) {
+                               free(contact_data->first_name);
+                               contact_data->first_name = NULL;
+                       }
+
+                       if (contact_data->last_name) {
+                               free(contact_data->last_name);
+                               contact_data->last_name = NULL;
+                       }
+
+                       if (contact_data->phone_number) {
+                               free(contact_data->phone_number);
+                               contact_data->phone_number = NULL;
+                       }
+
+                       free(contact_data);
+                       continue;
+                }
+
+               contact_list = eina_list_append(contact_list, contact_data);
+            }
+
+        }
+        contacts_list_destroy(person_list, true);
+    }
+
+       return contact_list;
+}
+
+
diff --git a/TelegramTizen/src/group_chat_entry_view.c b/TelegramTizen/src/group_chat_entry_view.c
new file mode 100644 (file)
index 0000000..b1e2291
--- /dev/null
@@ -0,0 +1,340 @@
+/*
+ * group_chat_entry_view.c
+ *
+ *  Created on: Jul 11, 2015
+ *      Author: sandeep
+ */
+
+#include "group_chat_entry_view.h"
+#include "server_requests.h"
+
+char* on_image_load_text_get_cb(void *data, Evas_Object *obj, const char *part)
+{
+       int id = (int) data;
+       if (id == 0) {
+               return strdup("Camera");
+       } else {
+               return strdup("Gallery");
+       }
+}
+
+void on_camera_result_cb(app_control_h request, app_control_h reply, app_control_result_e result, void *user_data)
+{
+       if (result == APP_CONTROL_RESULT_SUCCEEDED) {
+               char* file_path = NULL;
+               char** path_arryay = NULL;
+               int array_length = 0;
+               app_control_get_extra_data_array(reply, APP_CONTROL_DATA_SELECTED, &path_arryay,  &array_length);
+
+               for(int i = 0 ; i < array_length ; i++) {
+                       file_path = strdup(path_arryay[i]);
+                       evas_object_data_set(user_data, "image_path", (void*)file_path);
+                       elm_image_file_set(user_data, file_path, NULL);
+                       break;
+               }
+       }
+}
+
+void on_image_load_option_selected_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       Evas_Object *popup = data;
+       int id = 0;
+       Elm_Object_Item *item = event_info;
+
+       id = (int)elm_object_item_data_get(item);
+       app_control_h app_control;
+       int ret = app_control_create(&app_control);
+
+       Evas_Object* cam_icon = evas_object_data_get(popup, "cam_icon");
+
+       appdata_s* ad = evas_object_data_get(cam_icon, "app_data");
+
+       if(ret != APP_CONTROL_ERROR_NONE) {
+               show_toast(ad, "Error: Can not load image picker");
+               return;
+       }
+
+       if (id  == 0) {
+               app_control_set_operation(app_control, APP_CONTROL_OPERATION_CREATE_CONTENT);
+               app_control_set_mime(app_control, "image/jpg");
+               app_control_send_launch_request(app_control, &on_camera_result_cb, cam_icon);
+       } else {
+               app_control_set_operation(app_control, APP_CONTROL_OPERATION_PICK);
+               app_control_set_mime(app_control,"image/*");
+               app_control_send_launch_request(app_control, &on_camera_result_cb, cam_icon);
+       }
+
+       app_control_destroy(app_control);
+       evas_object_del(popup);
+}
+
+void on_image_load_options_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       Evas_Object* cam_icon =  data;
+       appdata_s* ad = evas_object_data_get(data, "app_data");
+       static Elm_Genlist_Item_Class itc;
+       Evas_Object *popup;
+       Evas_Object *box;
+       Evas_Object *genlist;
+       int i;
+       Evas_Object *win = ad->win;
+
+       popup = elm_popup_add(win);
+       elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, eext_popup_back_cb, NULL);
+       elm_object_part_text_set(popup, "title,text", "Load image from");
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       evas_object_data_set(popup, "cam_icon", cam_icon);
+
+       /* box */
+       box = elm_box_add(popup);
+       evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       /* genlist */
+       genlist = elm_genlist_add(box);
+       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       itc.item_style = "default";
+       itc.func.text_get = on_image_load_text_get_cb;
+       itc.func.content_get = NULL;
+       itc.func.state_get = NULL;
+       itc.func.del = NULL;
+
+       for (i = 0; i < 2; i++) {
+               elm_genlist_item_append(genlist, &itc, (void *) i, NULL, ELM_GENLIST_ITEM_NONE, on_image_load_option_selected_cb, popup);
+       }
+       evas_object_show(genlist);
+       elm_box_pack_end(box, genlist);
+       evas_object_size_hint_min_set(box, -1, 230);
+       elm_object_content_set(popup, box);
+
+       evas_object_show(popup);
+}
+
+
+void on_group_buddy_selected(void *data, Evas_Object *obj, void *event_info)
+{
+       // nothing to do
+}
+
+char* on_group_buddy_name_get_cb(void *data, Evas_Object *obj, const char *part)
+{
+       int id = (int)data;
+       Eina_List* selected_buddies = evas_object_data_get(obj, "selected_buddies");
+
+       user_data_with_pic_s *item = eina_list_nth(selected_buddies, id);
+       user_data_s* user = item->use_data;
+       if (!strcmp(part,"elm.text")){
+
+               char* full_name = NULL;
+               if (user->first_name && user->last_name) {
+                       full_name = (char*)malloc(strlen(user->first_name) + strlen(user->last_name) + 1);
+                       strcpy(full_name, user->first_name);
+                       strcat(full_name, user->last_name);
+               } else if (user->first_name && !user->last_name) {
+                       full_name = (char*)malloc(strlen(user->first_name) + 1);
+                       strcpy(full_name, user->first_name);
+               } else if (!user->first_name && user->last_name) {
+                       full_name = (char*)malloc(strlen(user->last_name) + 1);
+                       strcpy(full_name, user->last_name);
+               } else {
+                       full_name = (char*)malloc(strlen(user->print_name) + 1);
+                       strcpy(full_name, user->print_name);
+               }
+
+               char buf[512] = {'\0'};
+               snprintf(buf, 512, "<align=left><font_size=30><color=#000000>%s</color></font_size></align>", full_name);
+               free(full_name);
+               return strdup(buf);
+       }
+       return NULL;
+}
+
+Evas_Object* on_group_buddy_selection_part_content_get_cb(void *data, Evas_Object *obj, const char *part)
+{
+       Evas_Object *eo = NULL;
+
+       if (!strcmp(part, "elm.swallow.icon")) {
+               Evas_Object *image = NULL;
+               int id = (int) data;
+               Eina_List* selected_buddies = evas_object_data_get(obj, "selected_buddies");
+
+               user_data_with_pic_s *item = eina_list_nth(selected_buddies, id);
+               user_data_s* user = item->use_data;
+
+               if (user->photo_path && strcmp(user->photo_path, "") != 0) {
+                       image = buddy_widget_main_icon_get(user->photo_path, obj);
+               } else {
+                       image = buddy_widget_main_icon_get(ui_utils_get_resource(FM_ICON_ROBO_BUDDY), obj);
+               }
+
+               item->contact_icon = image;
+               evas_object_event_callback_add(item->contact_icon, EVAS_CALLBACK_DEL, buddy_icon_del_cb, item);
+
+               if(image) {
+                       eo = elm_layout_add(obj);
+                       elm_layout_theme_set(eo, "layout", "list/C/type.3", "default");
+                       elm_layout_content_set(eo, "elm.swallow.content", image);
+               }
+       }
+       return eo;
+}
+
+
+void on_group_chat_done_buton_clicked(void *data, Evas_Object *object, void *event_info)
+{
+       Evas_Object* name_entry = data;
+       appdata_s* ad = evas_object_data_get(name_entry, "app_data");
+
+       // Load chat name entry view
+       char* temp_group_name = elm_object_text_get(name_entry);
+       if (!temp_group_name) {
+               elm_object_text_set(name_entry, "");
+               show_toast(ad, "Enter a valid name to group");
+               return;
+       }
+
+       char* group_name = trim(temp_group_name);
+
+       if (!group_name || strlen(group_name) <= 0) {
+               elm_object_text_set(name_entry, "");
+               show_toast(ad, "Enter a valid name to group");
+               return;
+       }
+
+       Eina_List* selected_buddies = evas_object_data_get(name_entry, "selected_buddies");
+       Evas_Object* cam_icon = evas_object_data_get(name_entry, "cam_icon");
+       char* img_file_path = evas_object_data_get(cam_icon, "image_path");
+
+       send_group_creation_request_to_server(ad->service_client, selected_buddies, group_name, img_file_path);
+       eina_list_free(selected_buddies);
+}
+
+void on_group_chat_cancel_buton_clicked(void *data, Evas_Object *object, void *event_info)
+{
+       appdata_s* ad = data;
+       if (ad->buddy_list) {
+               for (int i = 0 ; i < eina_list_count(ad->buddy_list) ; i++) {
+                       user_data_with_pic_s *item = eina_list_nth(ad->buddy_list, i);
+                       user_data_s* user = item->use_data;
+                       user->is_selected = EINA_FALSE;
+               }
+       }
+       elm_naviframe_item_pop(ad->nf);
+       ad->current_app_state = TG_BUDDY_LIST_STATE;
+       evas_object_show(ad->panel);
+       elm_panel_hidden_set(ad->panel, EINA_FALSE);
+}
+
+
+void launch_group_chat_name_entry_view(void *data)
+{
+       appdata_s* ad = data;
+       ad->current_app_state = TG_GROUP_CHAT_NAME_ENTRY_STATE;
+
+       int w, h;
+       elm_win_screen_size_get(ad->win, NULL, NULL, &w, &h);
+       h -= 130;
+
+       char edj_path[PATH_MAX] = {0, };
+
+    Evas_Object* main_layout = elm_layout_add(ad->win);
+       app_get_resource(EDJ_CHAT_CONV_FILE, edj_path, (int)PATH_MAX);
+       elm_layout_file_set(main_layout, edj_path, "group_chat_entry");
+       evas_object_size_hint_min_set(main_layout, w, h);
+       evas_object_show(main_layout);
+
+    Evas_Object* entry_layout = elm_layout_add(ad->win);
+       app_get_resource(EDJ_CHAT_CONV_FILE, edj_path, (int)PATH_MAX);
+       elm_layout_file_set(entry_layout, edj_path, "group_chat_photo_name_entry");
+       evas_object_show(entry_layout);
+       elm_object_part_content_set(main_layout, "swallow.group_chat_entry_box", entry_layout);
+
+       Evas_Object* cam_icon = elm_image_add(main_layout);
+    elm_image_file_set(cam_icon, ui_utils_get_resource(CAMERA_ICON), NULL);
+    evas_object_show(cam_icon);
+
+    evas_object_smart_callback_add(cam_icon, "clicked", on_image_load_options_cb, (void*)cam_icon);
+       elm_object_part_content_set(entry_layout, "swallow.cam_box", cam_icon);
+
+       Evas_Object* name_entry = elm_entry_add(main_layout);
+       elm_entry_single_line_set(name_entry, EINA_TRUE);
+       evas_object_show(name_entry);
+       elm_object_part_content_set(entry_layout, "swallow.entry_box", name_entry);
+
+
+    Eina_List* selected_buddies = NULL;
+
+    for (int i = 0 ; i < eina_list_count(ad->buddy_list) ; i++) {
+       user_data_with_pic_s *item = eina_list_nth(ad->buddy_list, i);
+       user_data_s* user = item->use_data;
+       if (user->is_selected) {
+               selected_buddies = eina_list_append(selected_buddies, item);
+       }
+    }
+
+       static Elm_Genlist_Item_Class itc;
+
+       Evas_Object* buddy_gen_list = elm_genlist_add(ad->nf);
+       elm_list_mode_set(buddy_gen_list, ELM_LIST_COMPRESS);
+       elm_genlist_decorate_mode_set(buddy_gen_list, ELM_LIST_COMPRESS);
+       evas_object_size_hint_weight_set(buddy_gen_list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(buddy_gen_list, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       evas_object_data_set(buddy_gen_list, "app_data", ad);
+       evas_object_data_set(buddy_gen_list, "selected_buddies", (void*)selected_buddies);
+
+       evas_object_data_set(cam_icon, "app_data", ad);
+       evas_object_data_set(cam_icon, "selected_buddies", (void*)selected_buddies);
+
+       evas_object_data_set(name_entry, "app_data", ad);
+       evas_object_data_set(name_entry, "selected_buddies", (void*)selected_buddies);
+       evas_object_data_set(name_entry, "cam_icon", cam_icon);
+
+       itc.item_style = "default_style";
+       itc.func.text_get = on_group_buddy_name_get_cb;
+       itc.func.content_get = on_group_buddy_selection_part_content_get_cb;
+       itc.func.state_get = NULL;
+       itc.func.del = NULL;
+
+       int size = 0;
+       if (selected_buddies) {
+               size = eina_list_count(selected_buddies);
+       } else {
+               size = 1; // no items
+       }
+
+       for (int i = 0; i < size; i++) {
+               elm_genlist_item_append(buddy_gen_list, &itc, (void*)i, NULL, ELM_GENLIST_ITEM_NONE, on_group_buddy_selected, (void*)i);
+       }
+
+       evas_object_show(buddy_gen_list);
+
+       elm_object_part_content_set(main_layout, "swallow.group_chat_buddy_list_box", buddy_gen_list);
+
+       Elm_Object_Item* chat_nav_item = elm_naviframe_item_push(ad->nf, "New chat group", NULL, NULL, main_layout, NULL);
+
+       Evas_Object* done_btn = elm_button_add(ad->layout);
+       elm_object_style_set(done_btn, "naviframe/title_icon");
+       Evas_Object* done_icon = elm_image_add(ad->layout);
+       elm_image_file_set(done_icon, ui_utils_get_resource(FM_OK_BUTTON), NULL);
+       evas_object_smart_callback_add(done_btn, "clicked", on_group_chat_done_buton_clicked, name_entry);
+       elm_object_content_set(done_btn, done_icon);
+       evas_object_show(done_btn);
+
+       Evas_Object* cancel_btn = elm_button_add(ad->layout);
+       elm_object_style_set(cancel_btn, "naviframe/title_icon");
+       Evas_Object* cancel_icon = elm_image_add(ad->layout);
+       elm_image_file_set(cancel_icon, ui_utils_get_resource(FM_CANCEL_BUTTON), NULL);
+       evas_object_smart_callback_add(cancel_btn, "clicked", on_group_chat_cancel_buton_clicked, ad);
+       elm_object_content_set(cancel_btn, cancel_icon);
+       evas_object_show(cancel_btn);
+
+       elm_object_item_part_content_set(chat_nav_item, "title_right_btn", done_btn);
+       elm_object_item_part_content_set(chat_nav_item, "title_left_btn", cancel_btn);
+
+}
+
+
diff --git a/TelegramTizen/src/server_requests.c b/TelegramTizen/src/server_requests.c
new file mode 100644 (file)
index 0000000..265c68f
--- /dev/null
@@ -0,0 +1,437 @@
+/*
+ * server_requests.c
+ *
+ *  Created on: Jun 26, 2015
+ *      Author: sandeep
+ */
+
+#include "server_requests.h"
+#include "device_contacts_manager.h"
+
+void send_request_for_registration(service_client* service_client, const char* phone_number, Eina_Bool through_sms)
+{
+       if (!service_client || !phone_number) {
+               // error
+               return;
+       }
+
+       bundle *msg = bundle_create();
+       if (bundle_add_str(msg, "app_name", "Tizen Telegram") != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "command", "registration") != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "phone_number", phone_number) != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char* sms_req = NULL;
+
+       if (through_sms) {
+               sms_req = "true";
+       } else {
+               sms_req = "false";
+       }
+
+       if (bundle_add_str(msg, "through_sms", sms_req) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+    int result = SVC_RES_FAIL;
+    result = service_client_send_message(service_client, msg);
+
+       if(result != SVC_RES_OK) {
+               // error
+       }
+       bundle_free(msg);
+}
+
+void send_request_for_profile_registration(service_client* service_client, const char* first_name, const char* last_name)
+{
+       if (!service_client || !first_name || !last_name) {
+               // error
+               return;
+       }
+
+       bundle *msg = bundle_create();
+       if (bundle_add_str(msg, "app_name", "Tizen Telegram") != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "command", "profile_registration") != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "first_name", first_name) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "last_name", last_name) != 0)   {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+    int result = SVC_RES_FAIL;
+    result = service_client_send_message(service_client, msg);
+
+       if(result != SVC_RES_OK) {
+               // error
+       }
+       bundle_free(msg);
+}
+
+void send_request_for_validation(service_client* service_client, const char* sms_code)
+{
+       if (!service_client || !sms_code) {
+               // error
+               return;
+       }
+
+       bundle *msg = bundle_create();
+       if (bundle_add_str(msg, "app_name", "Tizen Telegram") != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "command", "code_validation") != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "sms_code", sms_code) != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+    int result = SVC_RES_FAIL;
+    result = service_client_send_message(service_client, msg);
+
+       if (result != SVC_RES_OK) {
+               // error
+       }
+       bundle_free(msg);
+}
+
+void send_request_for_message_transport(service_client* service_client, const int buddy_id, const int msg_type, const char* data, const int type_of_chat)
+{
+       if (!service_client || !data) {
+               // error
+               return;
+       }
+
+       bundle *msg = bundle_create();
+       if (bundle_add_str(msg, "app_name", "Tizen Telegram") != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "command", "message_transport") != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char buddy_id_str[50];
+       sprintf(buddy_id_str, "%d", buddy_id);
+
+       if (bundle_add_str(msg, "buddy_id", buddy_id_str) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char msg_type_str[10];
+       sprintf(msg_type_str, "%d", msg_type);
+
+       if (bundle_add_str(msg, "message_type", msg_type_str) != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "message_data", data) != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char type_of_chat_str[50];
+       sprintf(type_of_chat_str, "%d", type_of_chat);
+
+       if (bundle_add_str(msg, "type_of_chat", type_of_chat_str) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+    int result = SVC_RES_FAIL;
+    result = service_client_send_message(service_client, msg);
+
+       if(result != SVC_RES_OK) {
+               // error
+       }
+       bundle_free(msg);
+}
+
+void send_request_for_media_transport(service_client* service_client, const int buddy_id, const int msg_type, const char* file_path)
+{
+       if (!service_client || !file_path) {
+               // error
+               return;
+       }
+
+       bundle *msg = bundle_create();
+       if (bundle_add_str(msg, "app_name", "Tizen Telegram") != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "command", "media_transport") != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char buddy_id_str[50];
+       sprintf(buddy_id_str, "%d", buddy_id);
+
+       if (bundle_add_str(msg, "buddy_id", buddy_id_str) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char msg_type_str[10];
+       sprintf(msg_type_str, "%d", msg_type);
+
+       if (bundle_add_str(msg, "message_type", msg_type_str) != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "file_path", file_path) != 0)   {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+    int result = SVC_RES_FAIL;
+    result = service_client_send_message(service_client, msg);
+
+       if(result != SVC_RES_OK) {
+               // error
+       }
+       bundle_free(msg);
+}
+
+
+void send_request_for_image_downloading(service_client* service_client, const int buddy_id, const long long  media_id)
+{
+       if (!service_client) {
+               // error
+               return;
+       }
+
+       bundle *msg = bundle_create();
+       if (bundle_add_str(msg, "app_name", "Tizen Telegram") != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "command", "media_download_request") != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char buddy_id_str[50];
+       sprintf(buddy_id_str, "%d", buddy_id);
+
+       if (bundle_add_str(msg, "buddy_id", buddy_id_str) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char media_id_str[50];
+       sprintf(media_id_str, "%lld", media_id);
+
+       if (bundle_add_str(msg, "media_id", media_id_str) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+    int result = SVC_RES_FAIL;
+    result = service_client_send_message(service_client, msg);
+
+       if(result != SVC_RES_OK) {
+               // error
+       }
+       bundle_free(msg);
+}
+
+void send_contacts_list_to_server(service_client* service_client, Eina_List* contacts_list)
+{
+       if (!service_client || !contacts_list) {
+               // error
+               return;
+       }
+
+       bundle *msg = bundle_create();
+       if (bundle_add_str(msg, "app_name", "Tizen Telegram") != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "command", "device_contact_list") != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       int count = eina_list_count(contacts_list);
+       char count_str[50];
+       sprintf(count_str, "%d", count);
+
+       if (bundle_add_str(msg, "count", count_str) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       for (int i = 0; i < count ; i++) {
+               contact_data_s* contact_data = eina_list_nth(contacts_list, i);
+
+               char* first_name = contact_data->first_name;
+               if (!first_name) {
+                       first_name = contact_data->display_name;
+               }
+               if (!first_name) {
+                       first_name = "";
+               }
+
+               char* last_name = contact_data->last_name;
+               if (!last_name) {
+                       last_name = "";
+               }
+
+               char* phone_number = contact_data->phone_number;
+               if (!phone_number) {
+                       // error.
+                       continue;
+               }
+
+               char count_str[10];
+               sprintf(count_str, "%d", i);
+
+               char first_name_key[20];
+               strcpy(first_name_key, "first_name_");
+               strcat(first_name_key, count_str);
+
+               char last_name_key[20];
+               strcpy(last_name_key, "last_name_");
+               strcat(last_name_key, count_str);
+
+               char phone_number_key[20];
+               strcpy(phone_number_key, "phone_number_");
+               strcat(phone_number_key, count_str);
+
+               if (bundle_add_str(msg, first_name_key, first_name) != 0) {
+                       ERR("Failed to add data by key to bundle");
+                       bundle_free(msg);
+               }
+
+               if (bundle_add_str(msg, last_name_key, last_name) != 0) {
+                       ERR("Failed to add data by key to bundle");
+                       bundle_free(msg);
+               }
+
+               if (bundle_add_str(msg, phone_number_key, phone_number) != 0) {
+                       ERR("Failed to add data by key to bundle");
+                       bundle_free(msg);
+               }
+       }
+
+
+    int result = SVC_RES_FAIL;
+    result = service_client_send_message(service_client, msg);
+
+       if(result != SVC_RES_OK) {
+               // error
+       }
+       bundle_free(msg);
+
+}
+
+void send_group_creation_request_to_server(service_client* service_client, Eina_List* buddy_list, const char* group_name, const char* group_image)
+{
+       if (!service_client || !buddy_list || !group_name) {
+               // error
+               return;
+       }
+
+       bundle *msg = bundle_create();
+       if (bundle_add_str(msg, "app_name", "Tizen Telegram") != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "command", "group_creation_request") != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       int count = eina_list_count(buddy_list);
+       char count_str[50];
+       sprintf(count_str, "%d", count);
+
+       if (bundle_add_str(msg, "count", count_str) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       for (int i = 0; i < count ; i++) {
+               user_data_with_pic_s *item = eina_list_nth(buddy_list, i);
+               user_data_s* contact_data = item->use_data;
+
+               int buddy_id = contact_data->user_id.id;
+               char buddy_id_str[50];
+               sprintf(buddy_id_str, "%d", buddy_id);
+
+               char count_str[10];
+               sprintf(count_str, "%d", i);
+
+               char buddy_id_key[20];
+               strcpy(buddy_id_key, "buddy_id_");
+               strcat(buddy_id_key, count_str);
+
+               if (bundle_add_str(msg, buddy_id_key, buddy_id_str) != 0) {
+                       ERR("Failed to add data by key to bundle");
+                       bundle_free(msg);
+               }
+       }
+
+       if (bundle_add_str(msg, "group_name", group_name) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (group_image) {
+               if (bundle_add_str(msg, "group_image", group_image) != 0) {
+                       ERR("Failed to add data by key to bundle");
+                       bundle_free(msg);
+               }
+       } else {
+               if (bundle_add_str(msg, "group_image", "") != 0) {
+                       ERR("Failed to add data by key to bundle");
+                       bundle_free(msg);
+               }
+       }
+
+    int result = SVC_RES_FAIL;
+    result = service_client_send_message(service_client, msg);
+
+       if(result != SVC_RES_OK) {
+               // error
+       }
+       bundle_free(msg);
+
+}
diff --git a/TelegramTizen/src/service_client.c b/TelegramTizen/src/service_client.c
new file mode 100644 (file)
index 0000000..cc84ff4
--- /dev/null
@@ -0,0 +1,200 @@
+/*
+ * service_client.c
+ *
+ *  Created on: Jun 25, 2015
+ *      Author: sandeep
+ */
+
+#include "service_client.h"
+#include <stdlib.h>
+#include <stdbool.h>
+#include <message_port.h>
+
+struct _service_client
+{
+    int local_port_id;
+    char *remote_port_name;
+    char *remote_app_name;
+    service_client_callback_func cb_func;
+    void *cb_data;
+};
+
+static int _service_client_convert_msg_port_result(const int err);
+static void _on_message_received_cb(int port_id,
+        const char *rem_app_name,
+        const char *rem_port_name,
+        bool trusted_message,
+        bundle *rec_msg,
+        void *user_data);
+
+service_client *service_client_create()
+{
+    service_client *const service = calloc(1 , sizeof(service_client));
+    return service;
+}
+
+void service_client_destroy(service_client *service_cl)
+{
+    if (service_cl)
+    {
+        message_port_unregister_local_port(service_cl->local_port_id);
+        free(service_cl->remote_port_name);
+        free(service_cl->remote_app_name);
+        free(service_cl);
+        service_cl = NULL;
+    }
+}
+
+int service_client_register_port(service_client *service_cl, const char *const port_name)
+{
+    int result = SVC_RES_FAIL;
+
+    RETVM_IF(!service_cl, result, "service client is NULL");
+    RETVM_IF(!port_name, result, "Message port name is NULL");
+
+    int temp_id = message_port_register_local_port(port_name, _on_message_received_cb, service_cl);
+    if (temp_id < 0)
+    {
+        _service_client_convert_msg_port_result(temp_id);
+        ERR("Failed to register local message port");
+        service_cl->local_port_id = 0;
+        return result;
+    }
+
+    DBG("Message port %s registered with id: %d", port_name, temp_id);
+    service_cl->local_port_id = temp_id;
+
+    return SVC_RES_OK;
+}
+
+int service_client_send_message(service_client *service_cl, bundle *const msg)
+{
+    int result = SVC_RES_FAIL;
+
+    RETVM_IF(!service_cl, result , "service client is NULL");
+    RETVM_IF(!(service_cl->local_port_id), result, "Message port is not registered");
+    RETVM_IF(!(service_cl->remote_app_name), result, "Remote application name is not registered");
+    RETVM_IF(!(service_cl->remote_port_name), result, "Remote message port is not registered");
+
+    result = _service_client_convert_msg_port_result(message_port_send_message_with_local_port(
+            service_cl->remote_app_name,
+            service_cl->remote_port_name,
+            msg,
+            service_cl->local_port_id));
+
+    RETVM_IF(result != SVC_RES_OK, result, "Failed to send bidirectional message to: %s:%s",
+            service_cl->remote_app_name,
+            service_cl->remote_port_name);
+
+    DBG("Message successfully send to: %s:%s", service_cl->remote_app_name, service_cl->remote_port_name);
+    return result;
+}
+
+int service_client_register_msg_receive_callback(service_client *service_cl,
+        service_client_callback_func callback_func,
+        void *data)
+{
+    RETVM_IF(!service_cl, SVC_RES_FAIL, "service client is NULL");
+
+    service_cl->cb_func = callback_func;
+    service_cl->cb_data = data;
+
+    return SVC_RES_OK;
+}
+
+int _service_client_set_remote_data(service_client *service_cl,
+        const char *rem_app_name,
+        const char *rem_port_name)
+{
+    RETVM_IF(!service_cl, SVC_RES_FAIL, "service pointer is NULL");
+
+    char *temp_rem_app_name = NULL;
+    char *temp_rem_port_name = NULL;
+
+    if (!service_cl->remote_app_name && rem_app_name)
+    {
+        temp_rem_app_name = strdup(rem_app_name);
+        RETVM_IF(!temp_rem_app_name, SVC_RES_FAIL,
+                "Failed to set remote application name. Strdup failed");
+    }
+
+    if (!service_cl->remote_port_name && rem_port_name)
+    {
+        temp_rem_port_name = strdup(rem_port_name);
+        if (!temp_rem_port_name)
+        {
+            ERR("Failed to set remote port name. Strdup failed");
+            free(temp_rem_app_name);
+            return SVC_RES_FAIL;
+        }
+    }
+
+    if (temp_rem_app_name)
+    {
+        service_cl->remote_app_name = temp_rem_app_name;
+    }
+    if (temp_rem_port_name)
+    {
+        service_cl->remote_port_name = temp_rem_port_name;
+    }
+
+    return SVC_RES_OK;
+}
+
+static int _service_client_convert_msg_port_result(const int err)
+{
+    int result = SVC_RES_FAIL;
+
+    switch (err)
+    {
+        case MESSAGE_PORT_ERROR_NONE:
+            result = SVC_RES_OK;
+            break;
+        case MESSAGE_PORT_ERROR_IO_ERROR:
+            ERR("MessagePort error: i/o error");
+            break;
+        case MESSAGE_PORT_ERROR_OUT_OF_MEMORY:
+            ERR("MessagePort error: out of memory");
+            break;
+        case MESSAGE_PORT_ERROR_INVALID_PARAMETER:
+            ERR("MessagePort error: invalid parameter");
+            break;
+        case MESSAGE_PORT_ERROR_PORT_NOT_FOUND:
+            ERR("MessagePort error: message port not found");
+            break;
+        case MESSAGE_PORT_ERROR_CERTIFICATE_NOT_MATCH:
+            ERR("MessagePort error: certificate not match");
+            break;
+        case MESSAGE_PORT_ERROR_MAX_EXCEEDED:
+            ERR("MessagePort error: max exceeded");
+            break;
+        default:
+            ERR("MessagePort error: unknown error");
+            break;
+    }
+    return result;
+}
+
+static void _on_message_received_cb(int port_id,
+        const char *rem_app_name,
+        const char *rem_port_name,
+        bool trusted_message,
+        bundle *rec_msg,
+        void *user_data)
+{
+    DBG("Received message from port %d", port_id);
+    RETM_IF(!user_data, "user_data is NULL");
+    service_client *service_cl = user_data;
+    int res = _service_client_set_remote_data(service_cl, rem_app_name, rem_port_name);
+    RETM_IF(res != SVC_RES_OK ,"Failed to set remote data to message port");
+
+    if (service_cl->cb_func)
+    {
+        res = service_cl->cb_func(service_cl->cb_data, rec_msg);
+        RETM_IF(res != SVC_RES_OK ,"Message port callback function failed");
+    }
+    else
+    {
+        DBG("Message port callback function not set");
+    }
+}
diff --git a/TelegramTizen/src/telegramtizen.c b/TelegramTizen/src/telegramtizen.c
new file mode 100644 (file)
index 0000000..d9412f4
--- /dev/null
@@ -0,0 +1,1381 @@
+#include "telegramtizen.h"
+#include "tg_splash_screen.h"
+#include "tg_registration.h"
+#include "tg_db_wrapper.h"
+#include "tg_login.h"
+#include "tg_buddy_list.h"
+#include "tg_first_registration.h"
+#include "tg_chat_conv_view.h"
+#include "device_contacts_manager.h"
+#include "contacts-db-utils.h"
+#include "server_requests.h"
+
+static void
+popup_block_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       evas_object_del(obj);
+}
+
+static void
+popup_timeout_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       evas_object_del(obj);
+}
+
+void show_toast(appdata_s *ad, char* value)
+{
+       Evas_Object *popup;
+       Evas_Object *win = ad->win;
+       popup = elm_popup_add(win);
+       elm_object_style_set(popup, "toast");
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, eext_popup_back_cb, NULL);
+
+       char buf[512] = {'\0'};
+       snprintf(buf, sizeof(buf), "<font_size=30><color=#000000>%s</color></font_size>", value);
+
+       //elm_object_part_text_set(popup,"elm.text", buf);
+       elm_object_text_set(popup, buf);
+       evas_object_smart_callback_add(popup, "block,clicked", popup_block_clicked_cb, win);
+       elm_popup_timeout_set(popup, 2.0);
+       evas_object_smart_callback_add(popup, "timeout", popup_timeout_cb, NULL);
+       evas_object_show(popup);
+}
+
+static int _app_send_response(appdata_s *app, bundle *const msg)
+{
+    int res = SVC_RES_FAIL;
+    res = service_client_send_message(app->service_client, msg);
+    return res;
+}
+
+static void load_registered_user_data(appdata_s *ad, Eina_List* user_info)
+{
+       //Eina_List* user_info = get_registered_user_info();
+
+       if(!user_info) {
+               //error
+               show_toast(ad, "User info not loaded");
+       }
+
+       int row_count = eina_list_count(user_info);
+
+       for (int i = 0 ; i < row_count ; i++) {
+               Eina_List* row_vals = eina_list_nth(user_info, i);
+
+               int *temp_user_id = (int*)eina_list_nth(row_vals, 0);
+               if(temp_user_id) {
+                       int user_id = *temp_user_id;
+                       free(temp_user_id);
+
+                       ad->user_id.id = user_id;
+                       ad->user_id.type = TGL_PEER_USER;
+
+                       ad->current_user_data.user_id.id = user_id;
+                       ad->current_user_data.user_id.type = TGL_PEER_USER;
+
+               }
+
+               char *print_name = (char*)eina_list_nth(row_vals, 1);
+               if(print_name) {
+                       ad->current_user_data.print_name = strdup(print_name);
+                       free(print_name);
+               }
+
+               int *temp_struct_ver = (int*)eina_list_nth(row_vals, 2);
+               if(temp_struct_ver) {
+                       ad->current_user_data.structure_version = *temp_struct_ver;
+                       free(temp_struct_ver);
+               }
+
+               char *photo_path = (char*)eina_list_nth(row_vals, 3);
+               if(photo_path) {
+                       ad->current_user_data.photo_path = strdup(photo_path);
+                       free(photo_path);
+               }
+
+               int *temp_photo_id = (int*)eina_list_nth(row_vals, 4);
+               if(temp_photo_id) {
+                       ad->current_user_data.photo_id = *temp_photo_id;
+                       free(temp_photo_id);
+               }
+
+               char *first_name = (char*)eina_list_nth(row_vals, 5);
+               if(first_name) {
+                       ad->current_user_data.first_name = strdup(first_name);
+                       free(first_name);
+               }
+
+               char *last_name = (char*)eina_list_nth(row_vals, 6);
+               if(last_name) {
+                       ad->current_user_data.last_name = strdup(last_name);
+                       free(last_name);
+               }
+
+               char *phone_no = (char*)eina_list_nth(row_vals, 7);
+               if(phone_no) {
+                       ad->current_user_data.phone = strdup(phone_no);
+                       free(phone_no);
+               }
+
+               int *temp_access_hash = (int*)eina_list_nth(row_vals, 8);
+               if(temp_access_hash) {
+                       ad->current_user_data.access_hash = *temp_access_hash;
+                       free(temp_access_hash);
+               }
+
+               char *real_first_name = (char*)eina_list_nth(row_vals, 9);
+               if(real_first_name) {
+                       ad->current_user_data.real_first_name = strdup(real_first_name);
+                       free(real_first_name);
+               }
+
+               char *real_last_name = (char*)eina_list_nth(row_vals, 10);
+               if(real_last_name) {
+                       ad->current_user_data.real_last_name = strdup(real_last_name);
+                       free(real_last_name);
+               }
+
+               char *user_name = (char*)eina_list_nth(row_vals, 11);
+               if(user_name) {
+                       ad->current_user_data.username = strdup(user_name);
+                       free(user_name);
+               }
+
+               int *temp_online_status = (int*)eina_list_nth(row_vals, 12);
+               if(temp_online_status) {
+                       ad->current_user_data.online = *temp_online_status;
+                       free(temp_online_status);
+               }
+
+               int *temp_last_seen = (int*)eina_list_nth(row_vals, 13);
+               if(temp_last_seen) {
+                       ad->current_user_data.last_seen = *temp_last_seen;
+                       free(temp_last_seen);
+               }
+
+               eina_list_free(row_vals);
+
+               break;
+       }
+       eina_list_free(user_info);
+}
+
+void load_peer_data(appdata_s *ad)
+{
+       if (!ad) {
+               return;
+       }
+
+       if (ad->peer_list) {
+               for (int i = 0; i < eina_list_count(ad->peer_list) ; i++) {
+                       peer_with_pic_s* pic_item = eina_list_nth(ad->peer_list, i);
+                       tg_peer_info_s* item = pic_item->use_data;
+                       if (item) {
+                               if (item->print_name) {
+                                       free(item->print_name);
+                                       item->print_name = NULL;
+                               }
+                               if (item->photo_path) {
+                                       free(item->photo_path);
+                                       item->photo_path = NULL;
+                               }
+                               free(item);
+                       }
+                       free(pic_item);
+               }
+               eina_list_free(ad->peer_list);
+       }
+       ad->peer_list = NULL;
+
+
+       Eina_List* peer_details = get_all_peer_details();
+
+       for (int i = 0; i < eina_list_count(peer_details) ; i++) {
+               Eina_List* ts_msg = eina_list_nth(peer_details, i);
+               tg_peer_info_s* peer_info = (tg_peer_info_s*)malloc(sizeof(tg_peer_info_s));
+
+               int *temp_peer_id = (int*)eina_list_nth(ts_msg, 0);
+               if (temp_peer_id) {
+                       peer_info->peer_id  = *temp_peer_id;
+                       free(temp_peer_id);
+               }
+
+               int *temp_peer_type = (int*)eina_list_nth(ts_msg, 1);
+               if (temp_peer_type) {
+                       peer_info->peer_type  = *temp_peer_type;
+                       free(temp_peer_type);
+               }
+
+               int *temp_flags = (int*)eina_list_nth(ts_msg, 2);
+               if (temp_flags) {
+                       peer_info->flags = *temp_flags;
+                       free(temp_flags);
+               }
+
+               char *temp_msg_id = (char*)eina_list_nth(ts_msg, 3);
+               if (temp_msg_id) {
+                       peer_info->last_msg_id  = atoll(temp_msg_id);
+                       free(temp_msg_id);
+               }
+
+               int *temp_last_msg_date = (int*)eina_list_nth(ts_msg, 4);
+               if (temp_last_msg_date) {
+                       peer_info->last_msg_date = *temp_last_msg_date;
+                       free(temp_last_msg_date);
+               }
+
+               char *temp_print_name = (char*)eina_list_nth(ts_msg, 5);
+               if (temp_print_name) {
+                       peer_info->print_name  = strdup(temp_print_name);
+                       free(temp_print_name);
+               }
+
+               int *temp_struct_ver = (int*)eina_list_nth(ts_msg, 6);
+               if (temp_struct_ver) {
+                       peer_info->struct_version = *temp_struct_ver;
+                       free(temp_struct_ver);
+               }
+
+               int *temp_no_unread = (int*)eina_list_nth(ts_msg, 7);
+               if (temp_no_unread) {
+                       peer_info->no_of_unread_msgs = *temp_no_unread;
+                       free(temp_no_unread);
+               }
+
+               int *temp_last_seen = (int*)eina_list_nth(ts_msg, 8);
+               if (temp_last_seen) {
+                       peer_info->last_seen_time = *temp_last_seen;
+                       free(temp_last_seen);
+               }
+
+               char *temp_pic_path = (char*)eina_list_nth(ts_msg, 9);
+               if (temp_pic_path) {
+                       peer_info->photo_path = strdup(temp_pic_path);
+                       free(temp_pic_path);
+               }
+
+               int *temp_pic_id = (int*)eina_list_nth(ts_msg, 10);
+               if (temp_pic_id) {
+                       peer_info->photo_id = *temp_pic_id;
+                       free(temp_pic_id);
+               }
+
+
+               eina_list_free(ts_msg);
+
+               peer_with_pic_s *item = (peer_with_pic_s*) malloc(sizeof (peer_with_pic_s));
+               item->use_data = peer_info;
+               item->contact_icon = NULL;
+               ad->peer_list = eina_list_append(ad->peer_list, item);
+       }
+       eina_list_free(peer_details);
+}
+
+void load_group_chat_data(appdata_s *ad)
+{
+       if (!ad) {
+               return;
+       }
+       if (ad->group_chat_list) {
+               for (int i = 0; i < eina_list_count(ad->group_chat_list) ; i++) {
+                       group_chat_with_pic_s* pic_item = eina_list_nth(ad->group_chat_list, i);
+                       tg_chat_info_s* item = pic_item->use_data;
+                       if (item) {
+                               if (item->photo_path) {
+                                       free(item->photo_path);
+                                       item->photo_path = NULL;
+                               }
+                               if (item->print_title) {
+                                       free(item->print_title);
+                                       item->print_title = NULL;
+                               }
+                               if (item->title) {
+                                       free(item->title);
+                                       item->title = NULL;
+                               }
+                               free(item);
+                       }
+                       free(pic_item);
+               }
+               eina_list_free(ad->group_chat_list);
+       }
+       ad->group_chat_list = NULL;
+       Eina_List* chat_details = get_group_chat_details();
+
+       for (int i = 0; i < eina_list_count(chat_details) ; i++) {
+               Eina_List* ts_msg = eina_list_nth(chat_details, i);
+
+               tg_chat_info_s* chat_info = (tg_chat_info_s*)malloc(sizeof(tg_chat_info_s));
+
+
+               int *temp_chat_id = (int*)eina_list_nth(ts_msg, 0);
+               if (temp_chat_id) {
+                       chat_info->chat_id  = *temp_chat_id;
+                       free(temp_chat_id);
+               }
+
+               int *temp_flags = (int*)eina_list_nth(ts_msg, 1);
+               if (temp_flags) {
+                       chat_info->flags  = *temp_flags;
+                       free(temp_flags);
+               }
+
+               char *temp_print_title = (char*)eina_list_nth(ts_msg, 2);
+               if (temp_print_title) {
+                       chat_info->print_title  = strdup(temp_print_title);
+                       free(temp_print_title);
+               }
+
+               int *temp_struct_ver = (int*)eina_list_nth(ts_msg, 3);
+               if (temp_struct_ver) {
+                       chat_info->struct_version  = *temp_struct_ver;
+                       free(temp_struct_ver);
+               }
+
+               char *temp_photo_id = (char*)eina_list_nth(ts_msg, 4);
+               if (temp_photo_id) {
+                       chat_info->photo_id  = atoll(temp_photo_id);
+                       free(temp_photo_id);
+               }
+
+               char *temp_photo_path = (char*)eina_list_nth(ts_msg, 5);
+               if (temp_photo_path) {
+                       chat_info->photo_path  = strdup(temp_photo_path);
+                       free(temp_photo_path);
+               }
+
+               char *temp_title = (char*)eina_list_nth(ts_msg, 6);
+               if (temp_title) {
+                       chat_info->title  = strdup(temp_title);
+                       free(temp_title);
+               }
+
+               int *temp_users_num = (int*)eina_list_nth(ts_msg, 7);
+               if (temp_users_num) {
+                       chat_info->users_num  = *temp_users_num;
+                       free(temp_users_num);
+               }
+
+               int *temp_user_list_size = (int*)eina_list_nth(ts_msg, 8);
+               if (temp_user_list_size) {
+                       chat_info->user_list_size  = *temp_user_list_size;
+                       free(temp_user_list_size);
+               }
+
+               int *temp_user_list_version = (int*)eina_list_nth(ts_msg, 9);
+               if (temp_user_list_version) {
+                       chat_info->user_list_version  = *temp_user_list_version;
+                       free(temp_user_list_version);
+               }
+
+               int *temp_inviter_id = (int*)eina_list_nth(ts_msg, 10);
+               if (temp_inviter_id) {
+                       chat_info->inviter_id  = *temp_inviter_id;
+                       free(temp_inviter_id);
+               }
+
+               char *temp_full_ids = (char*)eina_list_nth(ts_msg, 11);
+               if (temp_full_ids) {
+                       char* item = strtok(temp_full_ids, ",");
+                       int count = 0;
+                       chat_info->chat_users[count] = atoi(item);
+
+                       while (item != NULL) {
+                               count++;
+                               item = strtok(NULL, ",");
+                               if (item != NULL) {
+                                       chat_info->chat_users[count] = atoi(item);
+                               }
+                       }
+                       free(temp_full_ids);
+               }
+
+               int *temp_date = (int*)eina_list_nth(ts_msg, 12);
+               if (temp_date) {
+                       chat_info->date  = *temp_date;
+                       free(temp_date);
+               }
+
+               int *temp_version = (int*)eina_list_nth(ts_msg, 13);
+               if (temp_version) {
+                       chat_info->version  = *temp_version;
+                       free(temp_version);
+               }
+
+               int *temp_admin_id = (int*)eina_list_nth(ts_msg, 14);
+               if (temp_admin_id) {
+                       chat_info->admin_id  = *temp_admin_id;
+                       free(temp_admin_id);
+               }
+               eina_list_free(ts_msg);
+
+               group_chat_with_pic_s *item = (group_chat_with_pic_s*) malloc(sizeof (group_chat_with_pic_s));
+               item->use_data = chat_info;
+               item->contact_icon = NULL;
+               ad->group_chat_list = eina_list_append(ad->group_chat_list, item);
+       }
+
+       eina_list_free(chat_details);
+}
+
+void load_buddy_list_data(appdata_s *ad)
+{
+       if (!ad) {
+               return;
+       }
+
+       if (ad->buddy_list) {
+
+               for (int i = 0; i < eina_list_count(ad->buddy_list) ; i++) {
+                       user_data_with_pic_s *item = eina_list_nth(ad->buddy_list, i);
+                       user_data_s* user_data = item->use_data;
+
+                       if (user_data->print_name) {
+                               free(user_data->print_name);
+                               user_data->print_name = NULL;
+                       }
+
+                       if (user_data->photo_path) {
+                               free(user_data->photo_path);
+                               user_data->photo_path = NULL;
+                       }
+
+                       if (user_data->first_name) {
+                               free(user_data->first_name);
+                               user_data->first_name = NULL;
+                       }
+
+                       if (user_data->last_name) {
+                               free(user_data->last_name);
+                               user_data->last_name = NULL;
+                       }
+
+                       if (user_data->phone) {
+                               free(user_data->phone);
+                               user_data->phone = NULL;
+                       }
+                       if (user_data->real_first_name) {
+                               free(user_data->real_first_name);
+                               user_data->real_first_name = NULL;
+                       }
+
+                       if (user_data->real_last_name) {
+                               free(user_data->real_last_name);
+                               user_data->real_last_name = NULL;
+                       }
+
+                       if (user_data->username) {
+                               free(user_data->username);
+                               user_data->username = NULL;
+                       }
+                       free(user_data);
+                       free(item);
+               }
+
+               eina_list_free(ad->buddy_list);
+               ad->buddy_list = NULL;
+       }
+
+       Eina_List* user_info = get_buddy_list_info();
+
+       if(!user_info) {
+               //error
+               show_toast(ad, "User info not loaded");
+               return;
+       }
+
+       int row_count = eina_list_count(user_info);
+
+       for (int i = 0 ; i < row_count ; i++) {
+               Eina_List* row_vals = eina_list_nth(user_info, i);
+
+               user_data_s* user_data = (user_data_s*)malloc(sizeof(user_data_s));
+               user_data->is_selected = EINA_FALSE;
+
+               int *temp_user_id = (int*)eina_list_nth(row_vals, 0);
+               if (temp_user_id) {
+                       user_data->user_id.id = *temp_user_id;
+                       user_data->user_id.type = TGL_PEER_USER;
+                       free(temp_user_id);
+               }
+
+               char *print_name = (char*)eina_list_nth(row_vals, 1);
+               if(print_name) {
+                       user_data->print_name = strdup(print_name);
+                       free(print_name);
+               } else {
+                       user_data->print_name = NULL;
+               }
+
+               int *temp_struct_ver = (int*)eina_list_nth(row_vals, 2);
+               if(temp_struct_ver) {
+                       user_data->structure_version = *temp_struct_ver;
+                       free(temp_struct_ver);
+               }
+
+               char *photo_path = (char*)eina_list_nth(row_vals, 3);
+               if(photo_path) {
+                       user_data->photo_path = strdup(photo_path);
+                       free(photo_path);
+               } else {
+                       user_data->photo_path = NULL;
+               }
+
+
+               int *temp_photo_id = (int*)eina_list_nth(row_vals, 4);
+               if(temp_photo_id) {
+                       user_data->photo_id = *temp_photo_id;
+                       free(temp_photo_id);
+               }
+
+               char *first_name = (char*)eina_list_nth(row_vals, 5);
+               if(first_name) {
+                       user_data->first_name = strdup(first_name);
+                       free(first_name);
+               } else {
+                       user_data->first_name = NULL;
+               }
+
+               char *last_name = (char*)eina_list_nth(row_vals, 6);
+               if(last_name) {
+                       user_data->last_name = strdup(last_name);
+                       free(last_name);
+               } else {
+                       user_data->last_name = NULL;
+               }
+
+               char *phone_no = (char*)eina_list_nth(row_vals, 7);
+               if(phone_no) {
+                       user_data->phone = strdup(phone_no);
+                       free(phone_no);
+               } else {
+                       user_data->phone = NULL;
+               }
+
+               int *temp_access_hash = (int*)eina_list_nth(row_vals, 8);
+               if(temp_access_hash) {
+                       user_data->access_hash = *temp_access_hash;
+                       free(temp_access_hash);
+               }
+
+               char *real_first_name = (char*)eina_list_nth(row_vals, 9);
+               if(real_first_name) {
+                       user_data->real_first_name = strdup(real_first_name);
+                       free(real_first_name);
+               } else {
+                       user_data->real_first_name = NULL;
+               }
+
+               char *real_last_name = (char*)eina_list_nth(row_vals, 10);
+               if(real_last_name) {
+                       user_data->real_last_name = strdup(real_last_name);
+                       free(real_last_name);
+               } else {
+                       user_data->real_last_name = NULL;
+               }
+
+               char *user_name = (char*)eina_list_nth(row_vals, 11);
+               if(user_name) {
+                       user_data->username = strdup(user_name);
+                       free(user_name);
+               } else {
+                       user_data->username = NULL;
+               }
+
+               int *temp_online_status = (int*)eina_list_nth(row_vals, 12);
+               if(temp_online_status) {
+                       user_data->online = *temp_online_status;
+                       free(temp_online_status);
+               }
+
+               int *temp_last_seen = (int*)eina_list_nth(row_vals, 13);
+               if(temp_last_seen) {
+                       user_data->last_seen = *temp_last_seen;
+                       free(temp_last_seen);
+               }
+
+               user_data_with_pic_s *item = (user_data_with_pic_s*) malloc(sizeof (user_data_with_pic_s));
+               item->use_data = user_data;
+               //item->pic_file_location = NULL;
+               item->contact_icon = NULL;
+               ad->buddy_list = eina_list_append(ad->buddy_list, item);
+
+               eina_list_free(row_vals);
+
+       }
+       eina_list_free(user_info);
+}
+
+Eina_Bool event_idler_cb(void *data)
+{
+    appdata_s *app = data;
+       load_buddy_list_data(app);
+       load_group_chat_data(app);
+       load_peer_data(app);
+
+       if (app->current_app_state == TG_BUDDY_LIST_STATE) {
+       refresh_buddy_list(app);
+               show_toast(app, "new group created");
+    } else {
+       elm_naviframe_item_pop(app->nf);
+       refresh_buddy_list(app);
+    }
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static int _on_service_client_msg_received_cb(void *data, bundle *const rec_msg)
+{
+    int result = SVC_RES_FAIL;
+    RETVM_IF(!data, result, "Data is NULL");
+    appdata_s *app = data;
+    char *rec_key_val = NULL;
+
+    result = bundle_get_str(rec_msg, "command", &rec_key_val);
+
+    if (strcmp(rec_key_val, "registration_done") == 0) {
+       char* is_success_val = NULL;
+       result = bundle_get_str(rec_msg, "is_success", &is_success_val);
+
+       if (strncmp("true", is_success_val, strlen("true")) == 0) {
+               show_toast(app, is_success_val);
+               // Launch login view
+               elm_naviframe_item_pop(app->nf);
+               launch_login_cb(data);
+       } else {
+               // error handling
+               show_toast(app, "Error: registration");
+       }
+
+    } else if (strcmp(rec_key_val, "contacts_load_done") == 0) {
+       char* is_success_val = NULL;
+       result = bundle_get_str(rec_msg, "is_success", &is_success_val);
+       if (strncmp("true", is_success_val, strlen("true")) == 0) {
+
+               // Load user data
+               Eina_List* user_info = get_registered_user_info();
+               load_registered_user_data(app, user_info);
+
+               if (app->current_app_state == TG_LOGIN_STATE || app->current_app_state == TG_REGISTRATION_STATE || app->current_app_state == TG_PROFILE_REGISTRATION_STATE) {
+                       // Launch buddy list view
+                       load_buddy_list_data(app);
+                       load_group_chat_data(app);
+                       load_peer_data(app);
+                       elm_naviframe_item_pop(app->nf);
+                       launch_buddy_list_cb(app);
+               } else if (app->current_app_state == TG_BUDDY_LIST_STATE) {
+                       refresh_buddy_list(app);
+               } else {
+
+               }
+
+       } else {
+               // error handling
+               show_toast(app, "Error: loading contacts");
+       }
+    } else if (strcmp(rec_key_val, "contacts_and_chats_load_done") == 0) {
+       char* is_success_val = NULL;
+       result = bundle_get_str(rec_msg, "is_success", &is_success_val);
+       if (strncmp("true", is_success_val, strlen("true")) == 0) {
+
+               // Load user data
+               Eina_List* user_info = get_registered_user_info();
+               load_registered_user_data(app, user_info);
+
+               if (app->current_app_state == TG_LOGIN_STATE || app->current_app_state == TG_REGISTRATION_STATE || app->current_app_state == TG_PROFILE_REGISTRATION_STATE) {
+                       // Launch buddy list view
+                       load_buddy_list_data(app);
+                       load_group_chat_data(app);
+                       load_peer_data(app);
+                       elm_naviframe_item_pop(app->nf);
+                       launch_buddy_list_cb(app);
+               } else if (app->current_app_state == TG_BUDDY_LIST_STATE) {
+                       app->current_app_state = TG_BUDDY_LIST_STATE;
+                       evas_object_show(app->panel);
+                       elm_panel_hidden_set(app->panel, EINA_FALSE);
+                       refresh_buddy_list(app);
+               } else {
+
+               }
+
+       } else {
+               // error handling
+               show_toast(app, "Error: loading contacts");
+       }
+    } else if (strcmp(rec_key_val, "buddy_profile_pic_updated") == 0) {
+       char* user_id_str = NULL;
+       result = bundle_get_str(rec_msg, "user_id", &user_id_str);
+       int user_id = atoi(user_id_str);
+
+       char* pic_file_path = NULL;
+       result = bundle_get_str(rec_msg, "file_path", &pic_file_path);
+
+       // update profile pic if buddy list view is present.
+       if(user_id == app->user_id.id) {
+               // registerd user.
+               // to be handled
+       } else {
+#if 0
+               // update buddy list in appdata.
+               if(app->buddy_list) {
+                       int size = eina_list_count(app->buddy_list);
+                       for (int i = 0 ; i < size ; i++) {
+                               user_data_with_pic_s *item = eina_list_nth(app->buddy_list, i);
+                               if (item->use_data->user_id.id == user_id) {
+                                       item->use_data->photo_path = strdup(pic_file_path);
+                                       if (item->contact_icon) {
+                                               elm_image_file_set(item->contact_icon, pic_file_path, NULL);
+                                       }
+                                       break;
+                               }
+                       }
+               }
+#else
+               if(app->peer_list) {
+                       int size = eina_list_count(app->peer_list);
+                       for (int i = 0 ; i < size ; i++) {
+                               peer_with_pic_s *item = eina_list_nth(app->peer_list, i);
+                               if (item->use_data->peer_id == user_id) {
+                                       item->use_data->photo_path = strdup(pic_file_path);
+                                       if (item->contact_icon) {
+                                               elm_image_file_set(item->contact_icon, pic_file_path, NULL);
+                                       }
+                                       break;
+                               }
+                       }
+               }
+
+#endif
+       }
+    } else if (strcmp(rec_key_val, "message_received") == 0) {
+
+       char* from_id_str = NULL;
+       result = bundle_get_str(rec_msg, "from_id", &from_id_str);
+       int from_id = atoi(from_id_str);
+
+       char* to_id_str = NULL;
+       result = bundle_get_str(rec_msg, "to_id", &to_id_str);
+       int to_id = atoi(to_id_str);
+
+       char* msg_id_str = NULL;
+       result = bundle_get_str(rec_msg, "message_id", &msg_id_str);
+       long long message_id = atoll(msg_id_str);
+
+       char* type_of_chat_str = NULL;
+       result = bundle_get_str(rec_msg, "type_of_chat", &type_of_chat_str);
+       int type_of_chat = atoi(type_of_chat_str);
+
+
+
+
+       if (from_id == app->user_id.id) {
+               // sent by the user. May be from another device.
+       }
+
+       //load message from the received info.
+       // get phone number using buddy id.
+#if 0
+       Eina_List* buddy_details_array = get_buddy_info(buddy_id);
+
+       if (buddy_details_array && eina_list_count(buddy_details_array) > 0) {
+               Eina_List* buddy_details = eina_list_nth(buddy_details_array, 0);
+               if (buddy_details && eina_list_count(buddy_details) > 0) {
+                       char* phone = eina_list_nth(buddy_details, 7);
+                       if (phone) {
+                               // get table name from phone number
+                               char* tablename = get_table_name_from_number(phone);
+                               tg_message_s* msg = get_message_from_message_table(message_id, tablename);
+                               // display in buddy list or conversation view
+                               //check conversation view is opened or not.
+                               if (msg && app->current_app_state ==  TG_BUDDY_CHAT_CONV_STATE && app->buddy_in_cahtting_data
+                                               && app->buddy_in_cahtting_data->peer_id == buddy_id) {
+                                       on_chat_buddy_msg_receive(msg);
+                               }
+                               free(tablename);
+                               free(msg);
+                       }
+               }
+       }
+#else
+       if (type_of_chat == TGL_PEER_USER) {
+               if (app->current_app_state ==  TG_BUDDY_CHAT_CONV_STATE && app->buddy_in_cahtting_data
+                               && app->buddy_in_cahtting_data->peer_id == from_id) {
+                       char* tablename = get_table_name_from_number(from_id);
+                       tg_message_s* msg = get_message_from_message_table(message_id, tablename);
+                       if (msg) {
+                               on_chat_buddy_msg_receive(msg, type_of_chat);
+                       }
+                       free(tablename);
+                       free(msg);
+               }
+       } else if (type_of_chat == TGL_PEER_CHAT) {
+               if (app->current_app_state ==  TG_BUDDY_CHAT_CONV_STATE && app->buddy_in_cahtting_data
+                               && app->buddy_in_cahtting_data->peer_id == to_id) {
+                       char* tablename = get_table_name_from_number(to_id);
+                       tg_message_s* msg = get_message_from_message_table(message_id, tablename);
+                       if (msg) {
+                               on_chat_buddy_msg_receive(msg, type_of_chat);
+                       }
+                       free(tablename);
+                       free(msg);
+               }
+
+       }
+#endif
+    } else if (strcmp(rec_key_val, "message_sent_to_buddy") == 0) {
+       char* buddy_id_str = NULL;
+       result = bundle_get_str(rec_msg, "buddy_id", &buddy_id_str);
+       int buddy_id = atoi(buddy_id_str);
+
+       char* msg_id_str = NULL;
+       result = bundle_get_str(rec_msg, "message_id", &msg_id_str);
+       int message_id = atoi(msg_id_str);
+
+       char* table_name = NULL;
+       result = bundle_get_str(rec_msg, "table_name", &table_name);
+
+       char* phone_number = NULL;
+       result = bundle_get_str(rec_msg, "phone_number", &phone_number);
+
+       char* type_of_chat_str = NULL;
+       result = bundle_get_str(rec_msg, "type_of_chat", &type_of_chat_str);
+       int type_of_chat = atoi(type_of_chat_str);
+
+       tg_message_s* msg = get_message_from_message_table(message_id, table_name);
+
+               if (msg && app->current_app_state ==  TG_BUDDY_CHAT_CONV_STATE && app->buddy_in_cahtting_data
+                               && app->buddy_in_cahtting_data->peer_id == buddy_id) {
+
+                       // update message to sent state
+                       // show_toast(app, "message sent successfully");
+                       on_message_sent_to_buddy_successfully(msg, type_of_chat);
+
+               }
+
+               free(msg);
+    } else if (strcmp(rec_key_val, "message_read_by_buddy") == 0) {
+       char* buddy_id_str = NULL;
+       result = bundle_get_str(rec_msg, "buddy_id", &buddy_id_str);
+       int buddy_id = atoi(buddy_id_str);
+
+       char* msg_id_str = NULL;
+       result = bundle_get_str(rec_msg, "message_id", &msg_id_str);
+       int message_id = atoi(msg_id_str);
+
+       char* table_name = NULL;
+       result = bundle_get_str(rec_msg, "table_name", &table_name);
+
+       char* phone_number = NULL;
+       result = bundle_get_str(rec_msg, "phone_number", &phone_number);
+
+       char* type_of_chat_str = NULL;
+       result = bundle_get_str(rec_msg, "type_of_chat", &type_of_chat_str);
+       int type_of_chat = atoi(type_of_chat_str);
+
+       tg_message_s* msg = get_message_from_message_table(message_id, table_name);
+
+               if (msg && app->current_app_state ==  TG_BUDDY_CHAT_CONV_STATE && app->buddy_in_cahtting_data
+                               && app->buddy_in_cahtting_data->peer_id == buddy_id) {
+
+                       // update message to sent state
+                       // show_toast(app, "message sent successfully");
+                       on_message_read_by_buddy_successfully(msg, type_of_chat);
+               }
+
+               free(msg);
+    } else if (strcmp(rec_key_val, "media_download_completed") == 0) {
+
+       char* buddy_id_str = NULL;
+       result = bundle_get_str(rec_msg, "buddy_id", &buddy_id_str);
+       int buddy_id = atoi(buddy_id_str);
+
+       char* media_id_str = NULL;
+       result = bundle_get_str(rec_msg, "media_id", &media_id_str);
+       long long media_id = atoll(media_id_str);
+
+       char* file_name = NULL;
+       result = bundle_get_str(rec_msg, "file_name", &file_name);
+
+               if (file_name && app->current_app_state ==  TG_BUDDY_CHAT_CONV_STATE && app->buddy_in_cahtting_data
+                               && app->buddy_in_cahtting_data->peer_id == buddy_id) {
+                       // update media to sent state
+                       on_received_image_loaded(buddy_id, media_id, file_name);
+               }
+    } else if (strcmp(rec_key_val, "name_registration_request") == 0) {
+
+       launch_first_registration_cb(app);
+
+    } else if (strcmp(rec_key_val, "add_contacts_request") == 0) {
+
+       // load contacts
+
+       if(sc_db_utils_connect())
+       {
+               Eina_List* contacts_list = get_contact_list_from_device_db();
+               sc_db_utils_disconnect();
+
+               if (!contacts_list || eina_list_count(contacts_list) <= 0) {
+                       // no contacts avilable. empty contact list.
+                       return result;
+               }
+               send_contacts_list_to_server(app->service_client, contacts_list);
+
+               for (int i = 0; i < eina_list_count(contacts_list) ; i++) {
+                       contact_data_s* contact_data = eina_list_nth(contacts_list, i);
+               if (contact_data->display_name) {
+                       free(contact_data->display_name);
+                       contact_data->display_name = NULL;
+               }
+
+               if (contact_data->first_name) {
+                       free(contact_data->first_name);
+                       contact_data->first_name = NULL;
+               }
+
+               if (contact_data->last_name) {
+                       free(contact_data->last_name);
+                       contact_data->last_name = NULL;
+               }
+
+               if (contact_data->phone_number) {
+                       free(contact_data->phone_number);
+                       contact_data->phone_number = NULL;
+               }
+               free(contact_data);
+               }
+               eina_list_free(contacts_list);
+       }
+    } else if (strcmp(rec_key_val, "new_group_added") == 0) {
+
+       char* chat_id_str = NULL;
+       result = bundle_get_str(rec_msg, "chat_id", &chat_id_str);
+       int chat_id = atoi(chat_id_str);
+
+#if 0
+       // get group chat details from database.(chat info)
+       // tg_chat_info_s* chat_info = get_chat_info(chat_id);
+
+               load_buddy_list_data(app);
+               load_group_chat_data(app);
+               load_peer_data(app);
+
+               if (app->current_app_state == TG_BUDDY_LIST_STATE) {
+               refresh_buddy_list(app);
+                       show_toast(app, "new group created");
+        } else {
+               elm_naviframe_item_pop(app->nf);
+               refresh_buddy_list(app);
+        }
+#else
+               if (app->buddy_list) {
+                       for (int i = 0 ; i < eina_list_count(app->buddy_list) ; i++) {
+                               user_data_with_pic_s *item = eina_list_nth(app->buddy_list, i);
+                               user_data_s* user = item->use_data;
+                               user->is_selected = EINA_FALSE;
+                       }
+               }
+               elm_naviframe_item_pop(app->nf);
+               app->current_app_state = TG_BUDDY_LIST_STATE;
+               evas_object_show(app->panel);
+               elm_panel_hidden_set(app->panel, EINA_FALSE);
+               refresh_buddy_list(app);
+               show_toast(app, "new group created");
+#endif
+    } else if (strcmp(rec_key_val, "contact_updated") == 0) {
+
+
+       char* buddy_id_str = NULL;
+       result = bundle_get_str(rec_msg, "buddy_id", &buddy_id_str);
+       int buddy_id = atoi(buddy_id_str);
+
+       char* update_msg = NULL;
+       result = bundle_get_str(rec_msg, "update_message", &update_msg);
+       show_toast(app, update_msg);
+    } else if (strcmp(rec_key_val, "buddy_status_updated") == 0) {
+       char* buddy_id_str = NULL;
+       result = bundle_get_str(rec_msg, "buddy_id", &buddy_id_str);
+       int buddy_id = atoi(buddy_id_str);
+
+       // update to online or last seen, if current view is conversation.
+
+    } else if (strcmp(rec_key_val, "type_status_updated") == 0) {
+
+       char* buddy_id_str = NULL;
+       result = bundle_get_str(rec_msg, "buddy_id", &buddy_id_str);
+       int buddy_id = atoi(buddy_id_str);
+
+       char* buddy_name = NULL;
+       result = bundle_get_str(rec_msg, "buddy_name", &buddy_name);
+
+       char* type_status_str = NULL;
+       result = bundle_get_str(rec_msg, "type_status", &type_status_str);
+       enum tgl_typing_status type_status = atoi(type_status_str);
+
+       // update UI
+       char* type_status_message = NULL;
+
+       switch (type_status) {
+       case tgl_typing_none:
+               type_status_message = (char*)malloc(strlen("doing nothing") + 1);
+               strcpy(type_status_message, "doing nothing");
+               break;
+       case tgl_typing_typing:
+               type_status_message = (char*)malloc(strlen("typing") + 1);
+               strcpy(type_status_message, "typing");
+               break;
+       case tgl_typing_cancel:
+               type_status_message = (char*)malloc(strlen("deleting typed message") + 1);
+               strcpy(type_status_message, "deleting typed message");
+               break;
+       case tgl_typing_record_video:
+               type_status_message = (char*)malloc(strlen("recording video") + 1);
+               strcpy(type_status_message, "recording video");
+               break;
+       case tgl_typing_upload_video:
+               type_status_message = (char*)malloc(strlen("uploading video") + 1);
+               strcpy(type_status_message, "uploading video");
+               break;
+       case tgl_typing_record_audio:
+               type_status_message = (char*)malloc(strlen("recording audio") + 1);
+               strcpy(type_status_message, "recording audio");
+               break;
+       case tgl_typing_upload_audio:
+               type_status_message = (char*)malloc(strlen("uploading audio") + 1);
+               strcpy(type_status_message, "uploading audio");
+               break;
+       case tgl_typing_upload_photo:
+               type_status_message = (char*)malloc(strlen("uploading photo") + 1);
+               strcpy(type_status_message, "uploading photo");
+               break;
+       case tgl_typing_upload_document:
+               type_status_message = (char*)malloc(strlen("uploading document") + 1);
+               strcpy(type_status_message, "uploading document");
+               break;
+       case tgl_typing_geo:
+               type_status_message = (char*)malloc(strlen("choosing location") + 1);
+               strcpy(type_status_message, "choosing location");
+               break;
+       case tgl_typing_choose_contact:
+               type_status_message = (char*)malloc(strlen("choosing contact") + 1);
+               strcpy(type_status_message, "choosing contact");
+               break;
+       }
+
+       // update UI. may be contacts view or conversation view.
+
+
+       if (type_status_message) {
+               free(type_status_message);
+               type_status_message = NULL;
+       }
+
+    } else {
+
+    }
+    return result;
+}
+
+int init_service(appdata_s *app)
+{
+    int result = SVC_RES_FAIL;
+    RETVM_IF(!app, result, "Application data is NULL");
+
+    app->service_client = service_client_create();
+    RETVM_IF(!app->service_client, result, "Failed to create service client");
+
+    result = service_client_register_port(app->service_client, TELEGRAM_CLIENT_PORT_NAME);
+    if (result != SVC_RES_OK)
+    {
+        ERR("Failed to register service client port");
+        service_client_destroy(app->service_client);
+        app->service_client = NULL;
+        return result;
+    }
+
+    result = _service_client_set_remote_data(app->service_client, TELEGRAM_SERVER_APP_NAME, TELEGRAM_SERVER_PORT_NAME);
+
+    result = service_client_register_msg_receive_callback(app->service_client, _on_service_client_msg_received_cb, app);
+    if (result != SVC_RES_OK)
+    {
+        ERR("Failed to register service client on message receive callback");
+        service_client_destroy(app->service_client);
+        app->service_client = NULL;
+        return result;
+    }
+    return result;
+}
+
+
+void win_delete_request_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       ui_app_exit();
+}
+
+void app_nf_back_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       appdata_s *ad = data;
+       switch(ad->current_app_state) {
+               case TG_REGISTRATION_STATE:
+                       elm_win_lower(ad->win);
+                       elm_exit();
+                       break;
+               case TG_LOGIN_STATE:
+                       elm_naviframe_item_pop(ad->nf);
+                       ad->current_app_state = TG_REGISTRATION_STATE;
+                       break;
+               case TG_PROFILE_REGISTRATION_STATE:
+                       ad->current_app_state = TG_REGISTRATION_STATE;
+                       elm_naviframe_item_pop(ad->nf);
+                       break;
+               case TG_BUDDY_LIST_STATE:
+                       evas_object_data_set(ad->nf, "buddy_list", NULL);
+                       elm_win_lower(ad->win);
+                       elm_exit();
+                       break;
+               case TG_BUDDY_CHAT_CONV_STATE:
+                       elm_naviframe_item_pop(ad->nf);
+                       ad->current_app_state = TG_BUDDY_LIST_STATE;
+                       //evas_object_show(ad->panel);
+                       refresh_buddy_list(ad);
+                       break;
+               case TG_BUDDY_LIST_SELECTION_STATE:
+                       if (ad->buddy_list) {
+                               for (int i = 0 ; i < eina_list_count(ad->buddy_list) ; i++) {
+                                       user_data_with_pic_s *item = eina_list_nth(ad->buddy_list, i);
+                                       user_data_s* user = item->use_data;
+                                       user->is_selected = EINA_FALSE;
+                               }
+                       }
+                       elm_naviframe_item_pop(ad->nf);
+                       ad->current_app_state = TG_BUDDY_LIST_STATE;
+                       evas_object_show(ad->panel);
+                       elm_panel_hidden_set(ad->panel, EINA_FALSE);
+                       refresh_buddy_list(ad);
+                       break;
+               case TG_GROUP_CHAT_NAME_ENTRY_STATE:
+                       if (ad->buddy_list) {
+                               for (int i = 0 ; i < eina_list_count(ad->buddy_list) ; i++) {
+                                       user_data_with_pic_s *item = eina_list_nth(ad->buddy_list, i);
+                                       user_data_s* user = item->use_data;
+                                       user->is_selected = EINA_FALSE;
+                               }
+                       }
+                       elm_naviframe_item_pop(ad->nf);
+                       ad->current_app_state = TG_BUDDY_LIST_STATE;
+                       evas_object_show(ad->panel);
+                       elm_panel_hidden_set(ad->panel, EINA_FALSE);
+                       refresh_buddy_list(ad);
+                       break;
+               default:
+                       break;
+       }
+}
+
+void
+layout_back_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       appdata_s *ad = data;
+       /* Let window go to hide state. */
+       elm_win_lower(ad->win);
+}
+
+
+void _btn_clicked(void* data, Evas_Object* btn, void* ev)
+{
+       appdata_s *ad = data;
+    bundle *msg = bundle_create();
+    if (bundle_add_str(msg, "tizen_app", "Hello service") != 0)
+    {
+        ERR("Failed to add data by key to bundle");
+        bundle_free(msg);
+    }
+
+    int result = _app_send_response(ad, msg);
+    if(result != SVC_RES_OK)
+    {
+        bundle_free(msg);
+    }
+    bundle_free(msg);
+}
+
+static void create_base_gui(appdata_s *ad)
+{
+
+       struct stat st = {0};
+
+       if (stat(DEFAULT_TELEGRAM_PATH, &st) == -1) {
+           mkdir(DEFAULT_TELEGRAM_PATH, S_IRWXU);
+       }
+
+       ad->win = elm_win_util_standard_add(PACKAGE, PACKAGE);
+       elm_win_conformant_set(ad->win, EINA_TRUE);
+       elm_win_autodel_set(ad->win, EINA_TRUE);
+
+       if (elm_win_wm_rotation_supported_get(ad->win)) {
+               int rots[4] = { 0, 90, 180, 270 };
+               elm_win_wm_rotation_available_rotations_set(ad->win, (const int *)(&rots), 4);
+       }
+
+       evas_object_smart_callback_add(ad->win, "delete,request", win_delete_request_cb, NULL);
+
+       ad->conform = elm_conformant_add(ad->win);
+       evas_object_size_hint_weight_set(ad->conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_win_resize_object_add(ad->win, ad->conform);
+       evas_object_show(ad->conform);
+
+       ad->layout = elm_layout_add(ad->conform);
+       evas_object_size_hint_weight_set(ad->layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       elm_layout_theme_set(ad->layout, "layout", "drawer", "panel");
+       evas_object_show(ad->layout);
+
+       elm_object_content_set(ad->conform, ad->layout);
+       ad->nf = elm_naviframe_add(ad->layout);
+
+       ad->current_app_state = TG_SPLASH_SCREEN_STATE;
+       launch_splash_screen_cb(ad);
+       create_data_base_tables();
+       elm_object_part_content_set(ad->layout, "elm.swallow.content", ad->nf);
+       eext_object_event_callback_add(ad->nf, EEXT_CALLBACK_BACK, app_nf_back_cb, ad);
+
+       evas_object_show(ad->win);
+
+
+       // check for user info
+
+       Eina_List* user_info = get_registered_user_info();
+
+       if (!user_info) {
+               elm_naviframe_item_pop(ad->nf);
+               ad->current_app_state = TG_REGISTRATION_STATE;
+               launch_registration_cb(ad);
+
+               //launch_first_registration_cb(ad);
+
+       } else {
+               //show_toast(ad, "user already registered");
+               load_registered_user_data(ad, user_info);
+               load_buddy_list_data(ad);
+               load_group_chat_data(ad);
+               load_peer_data(ad);
+               // Launch buddy list view
+               elm_naviframe_item_pop(ad->nf);
+               launch_buddy_list_cb(ad);
+       }
+       //eina_list_free(user_info);
+}
+
+static bool
+app_create(void *data)
+{
+       /*
+          Hook to take necessary actions before main event loop starts
+          Initialize UI resources and application's data
+          If this function returns true, the main loop of application starts
+          If this function returns false, the application is terminated
+       */
+
+       appdata_s *ad = data;
+       ad->phone_number = NULL;
+       ad->buddy_list = NULL;
+       ad->is_first_time_registration = EINA_FALSE;
+       ad->panel = NULL;
+       create_base_gui(ad);
+       init_service(ad);
+       return true;
+}
+
+static void
+app_control(app_control_h app_control, void *data)
+{
+       /* Handle the launch request. */
+}
+
+static void
+app_pause(void *data)
+{
+       /* Take necessary actions when application becomes invisible. */
+}
+
+static void
+app_resume(void *data)
+{
+       /* Take necessary actions when application becomes visible. */
+}
+
+static void
+app_terminate(void *data)
+{
+       /* Release all resources. */
+       appdata_s* app_data = data;
+       if(app_data->service_client) {
+               service_client_destroy(app_data->service_client);
+               app_data->service_client = NULL;
+       }
+}
+
+static void
+ui_app_lang_changed(app_event_info_h event_info, void *user_data)
+{
+       /*APP_EVENT_LANGUAGE_CHANGED*/
+       char *locale = NULL;
+       system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);
+       elm_language_set(locale);
+       free(locale);
+       return;
+}
+
+static void
+ui_app_orient_changed(app_event_info_h event_info, void *user_data)
+{
+       /*APP_EVENT_DEVICE_ORIENTATION_CHANGED*/
+       return;
+}
+
+static void
+ui_app_region_changed(app_event_info_h event_info, void *user_data)
+{
+       /*APP_EVENT_REGION_FORMAT_CHANGED*/
+}
+
+static void
+ui_app_low_battery(app_event_info_h event_info, void *user_data)
+{
+       /*APP_EVENT_LOW_BATTERY*/
+}
+
+static void
+ui_app_low_memory(app_event_info_h event_info, void *user_data)
+{
+       /*APP_EVENT_LOW_MEMORY*/
+}
+
+int
+main(int argc, char *argv[])
+{
+       appdata_s ad = {0,};
+       int ret = 0;
+
+       ui_app_lifecycle_callback_s event_callback = {0,};
+       app_event_handler_h handlers[5] = {NULL, };
+
+       event_callback.create = app_create;
+       event_callback.terminate = app_terminate;
+       event_callback.pause = app_pause;
+       event_callback.resume = app_resume;
+       event_callback.app_control = app_control;
+
+       ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, ui_app_low_battery, &ad);
+       ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, ui_app_low_memory, &ad);
+       ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, ui_app_orient_changed, &ad);
+       ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, ui_app_lang_changed, &ad);
+       ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, ui_app_region_changed, &ad);
+       ui_app_remove_event_handler(handlers[APP_EVENT_LOW_MEMORY]);
+
+       ret = ui_app_main(argc, argv, &event_callback, &ad);
+       if (ret != APP_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "ui_app_main() is failed. err = %d", ret);
+       }
+
+       return ret;
+}
diff --git a/TelegramTizen/src/tg_buddy_list.c b/TelegramTizen/src/tg_buddy_list.c
new file mode 100644 (file)
index 0000000..acb991b
--- /dev/null
@@ -0,0 +1,370 @@
+/*
+ * tg_buddy_list.c
+ *
+ *  Created on: May 21, 2015
+ *      Author: sandeep
+ */
+#include "tg_buddy_list.h"
+#include "tg_chat_conv_view.h"
+#include "contact_selection_view.h"
+
+
+Evas_Object *on_list_main_icon_get(const char *icon_name, Evas_Object *parent)
+{
+    Evas_Object *icon = elm_image_add(parent);
+    elm_object_focus_set(icon, EINA_FALSE);
+    elm_image_file_set(icon, icon_name, NULL);
+    evas_object_show(icon);
+    return icon;
+}
+
+char* on_list_text_get_cb(void *data, Evas_Object *obj, const char *part)
+{
+
+       int id = (int) data;
+
+       appdata_s* ad = evas_object_data_get(obj, "app_data");
+
+       int size = eina_list_count(ad->peer_list);
+
+       if (size <= 0) {
+               if (!strcmp(part,"elm.text")){
+                       char buf[512] = {'\0'};
+                       snprintf(buf, 512, "<align=left><font_size=30><color=#000000>%s</color></font_size></align>", "No Items");
+                       return strdup(buf);
+
+               } else if (!strcmp(part, "elm.text.sub")) {
+                       return NULL;
+               }
+       }
+
+       peer_with_pic_s* item = eina_list_nth(ad->peer_list, id);
+       tg_peer_info_s* user = item->use_data;
+
+       if (!strcmp(part,"elm.text")){
+               //return strdup(user->print_name);
+               char buf[512] = {'\0'};
+               snprintf(buf, 512, "<align=left><font_size=30><color=#000000>%s</color></font_size></align>", user->print_name);
+               return strdup(buf);
+
+       } else if (!strcmp(part, "elm.text.sub")) {
+               time_t t = user->last_seen_time;
+               const char *format = "last seen %b %d %Y at %H:%M";
+               struct tm lt;
+               char res[32];
+               (void) localtime_r(&t, &lt);
+
+        if (strftime(res, sizeof(res), format, &lt) == 0) {
+                (void) fprintf(stderr,  "strftime(3): cannot format supplied "
+                                        "date/time into buffer of size %u "
+                                        "using: '%s'\n",
+                                        sizeof(res), format);
+                exit(0);
+        }
+
+        char buf[512] = {'\0'};
+        snprintf(buf, 512, "<align=center><font_size=25><color=#000000>%s</color></font_size></align>", res);
+
+        return strdup(buf);
+       }
+
+       return NULL;
+}
+/***************** side panel *******************************/
+
+void list_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       appdata_s *ad = data;
+       Elm_Object_Item *it = (Elm_Object_Item *) elm_list_selected_item_get(obj);
+       if(it == NULL) return;
+       elm_object_item_part_text_set(elm_naviframe_top_item_get(ad->nf), NULL, elm_object_item_part_text_get(it, "default"));
+       elm_list_item_selected_set(it, EINA_FALSE);
+}
+
+void list_back_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       Evas_Object *panel = data;
+       elm_panel_hidden_set(panel, EINA_TRUE);
+}
+
+
+void on_new_group_chat_clicked(void *data, Evas_Object *obj, void *event_info)
+{
+       appdata_s* ad = data;
+       evas_object_hide(ad->panel);
+       elm_panel_hidden_set(ad->panel, EINA_TRUE);
+       launch_contact_selction_view(ad);
+}
+
+Evas_Object* create_panel_list(appdata_s* ad, Evas_Object *parent)
+{
+       Evas_Object *list;
+       list = elm_list_add(parent);
+       elm_list_mode_set(list, ELM_LIST_COMPRESS);
+
+       char* full_name = (char*)malloc(strlen(ad->current_user_data.first_name) + strlen(" ") + strlen(ad->current_user_data.last_name) + 1);
+       strcpy(full_name, ad->current_user_data.first_name);
+       strcat(full_name, " ");
+       strcat(full_name, ad->current_user_data.last_name);
+       elm_list_item_append(list, full_name, NULL, NULL, NULL, NULL);
+       free(full_name);
+
+       char* phone_no = (char*)malloc(strlen(ad->current_user_data.phone) + strlen("+") + 1);
+       strcpy(phone_no, "+");
+       strcat(phone_no, ad->current_user_data.phone);
+       elm_list_item_append(list, phone_no, NULL, NULL, NULL, NULL);
+       free(phone_no);
+
+       elm_list_item_append(list, "New Group", NULL, NULL, on_new_group_chat_clicked, ad);
+       elm_list_item_append(list, "New secret Chat", NULL, NULL, NULL, NULL);
+       elm_list_item_append(list, "New Broadcast list", NULL, NULL, NULL, NULL);
+       elm_list_item_append(list, "Contacts", NULL, NULL, NULL, NULL);
+       elm_list_item_append(list, "Invite Friends", NULL, NULL, NULL, NULL);
+       elm_list_item_append(list, "settings", NULL, NULL, NULL, NULL);
+       evas_object_show(list);
+       return list;
+}
+
+
+void panel_scroll_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       Elm_Panel_Scroll_Info *ev = event_info;
+       Evas_Object *bg = data;
+       int col = 127 * ev->rel_x;
+       evas_object_color_set(bg, 0, 0, 0, col);
+}
+
+Evas_Object* create_panel(Evas_Object *parent)
+{
+       Evas_Object *panel, *bg;
+
+       panel = elm_panel_add(parent);
+       elm_panel_scrollable_set(panel, EINA_TRUE);
+       elm_panel_hidden_set(panel, EINA_TRUE);
+       elm_panel_orient_set(panel, ELM_PANEL_ORIENT_LEFT);
+
+       bg = evas_object_rectangle_add(evas_object_evas_get(parent));
+       evas_object_color_set(bg, 0, 0, 0, 0);
+       elm_object_part_content_set(parent, "elm.swallow.bg", bg);
+       evas_object_show(bg);
+
+       evas_object_smart_callback_add(panel, "scroll", panel_scroll_cb, bg);
+       evas_object_show(panel);
+
+       return panel;
+}
+
+void create_main_view(appdata_s *ad)
+{
+       if (ad->panel) {
+               Evas_Object *panel_list = evas_object_data_get(ad->panel, "panel_list");
+               if (panel_list) {
+                       evas_object_del(panel_list);
+               }
+               evas_object_del(ad->panel);
+               ad->panel = NULL;
+       }
+
+       ad->panel = create_panel(ad->layout);
+       elm_object_part_content_set(ad->layout, "elm.swallow.left", ad->panel);
+       Evas_Object *panel_list = create_panel_list(ad, ad->panel);
+       evas_object_size_hint_weight_set(panel_list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(panel_list, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_smart_callback_add(panel_list, "selected", list_clicked_cb, ad);
+       eext_object_event_callback_add(panel_list, EEXT_CALLBACK_BACK, list_back_cb, ad->panel);
+       elm_object_content_set(ad->panel, panel_list);
+       evas_object_data_set(ad->panel, "panel_list", panel_list);
+       return;
+}
+/***************** side panel *******************************/
+
+void icon_del_cb(void *data, Evas *e, Evas_Object *icon, void *event_info)
+{
+       peer_with_pic_s *item  = data;
+       item->contact_icon = NULL;
+}
+
+Evas_Object* on_list_content_get_cb(void *data, Evas_Object *obj, const char *part)
+{
+       Evas_Object *eo = NULL;
+       if (!strcmp(part, "elm.swallow.icon")) {
+               Evas_Object *image = NULL;
+               int id = (int) data;
+               appdata_s* ad = evas_object_data_get(obj, "app_data");
+
+               int size = eina_list_count(ad->peer_list);
+
+               if (size <= 0) {
+                       return eo;
+               }
+
+
+               peer_with_pic_s* item = eina_list_nth(ad->peer_list, id);
+               tg_peer_info_s* user = item->use_data;
+
+               if (user->photo_path && strcmp(user->photo_path, "") != 0) {
+                       image = on_list_main_icon_get(user->photo_path, obj);
+               } else {
+                       image = on_list_main_icon_get(ui_utils_get_resource(FM_ICON_ROBO_BUDDY), obj);
+               }
+
+               item->contact_icon = image;
+               evas_object_event_callback_add(item->contact_icon, EVAS_CALLBACK_DEL, icon_del_cb, item);
+
+               if(image) {
+                       eo = elm_layout_add(obj);
+                       elm_layout_theme_set(eo, "layout", "list/C/type.3", "default");
+                       elm_layout_content_set(eo, "elm.swallow.content", image);
+               }
+       }
+       return eo;
+}
+
+static void on_buddy_clicked(void *data, Evas_Object *obj, void *event_info)
+{
+       Elm_Object_Item *it = event_info;
+       elm_genlist_item_selected_set(it, EINA_FALSE);
+
+       int item_id = (int) data;
+       appdata_s* ad = evas_object_data_get(obj, "app_data");
+
+       peer_with_pic_s* sel_item = eina_list_nth(ad->peer_list, item_id);
+
+       ad->buddy_in_cahtting_data = sel_item->use_data;
+       launch_chat_conv_view_cb(ad, item_id);
+}
+
+void on_search_clicked(void *data, Evas_Object *obj, void *event_info)
+{
+       appdata_s *ad = data;
+       refresh_buddy_list(ad);
+}
+
+Evas_Object* create_button(Evas_Object *parent, char *style, char *text)
+{
+       Evas_Object *button;
+
+       button = elm_button_add(parent);
+       if (style)
+               elm_object_style_set(button, style);
+       if (text)
+               elm_object_text_set(button, text);
+       evas_object_show(button);
+
+       return button;
+}
+
+void left_panel_button_clicked_cb(void *data, Evas_Object * obj, void *event_info)
+{
+       appdata_s *ad = data;
+       if (!elm_object_disabled_get(ad->panel)) elm_panel_toggle(ad->panel);
+}
+
+void buddylist_naviframe_more_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       appdata_s *ad = data;
+       if (!elm_object_disabled_get(ad->panel)) elm_panel_toggle(ad->panel);
+}
+
+void refresh_buddy_list(void *data)
+{
+       appdata_s* ad = data;
+       Evas_Object *buddy_list = evas_object_data_get(ad->nf, "buddy_list");
+       if (buddy_list) {
+
+               elm_genlist_clear(buddy_list);
+
+               load_buddy_list_data(ad);
+               load_group_chat_data(ad);
+               load_peer_data(ad);
+
+               int i = 0;
+               static Elm_Genlist_Item_Class itc;
+               itc.item_style = "double_label";
+               itc.func.text_get = on_list_text_get_cb;
+               itc.func.content_get = on_list_content_get_cb;
+               itc.func.state_get = NULL;
+               itc.func.del = NULL;
+
+               int size = eina_list_count(ad->peer_list);
+               if(size > 0) {
+                       for (i = 0; i < size; i++) {
+                               elm_genlist_item_append(buddy_list, &itc, (void *) i, NULL, ELM_GENLIST_ITEM_NONE, on_buddy_clicked, (void*) i);
+                       }
+               } else {
+                       i = 1;
+                       elm_genlist_item_append(buddy_list, &itc, (void *) i, NULL, ELM_GENLIST_ITEM_NONE, on_buddy_clicked, (void*) i);
+               }
+               evas_object_show(buddy_list);
+
+       }
+}
+
+void launch_buddy_list_cb(void *data)
+{
+       appdata_s* ad = data;
+
+       Evas_Object *nf = ad->nf;
+       Elm_Object_Item* detail_nav_item = NULL;
+
+       ad->current_app_state = TG_BUDDY_LIST_STATE;
+       elm_layout_theme_set(ad->layout, "layout", "drawer", "panel");
+       create_main_view(ad);
+
+       int i;
+       static Elm_Genlist_Item_Class itc;
+       Evas_Object *buddy_list = NULL;
+
+       buddy_list = elm_genlist_add(nf);
+       elm_list_mode_set(buddy_list, ELM_LIST_COMPRESS);
+       elm_genlist_mode_set(buddy_list, ELM_LIST_COMPRESS);
+       evas_object_size_hint_weight_set(buddy_list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(buddy_list, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+
+       evas_object_data_set(buddy_list, "app_data", ad);
+
+       itc.item_style = "double_label";
+       itc.func.text_get = on_list_text_get_cb;
+       itc.func.content_get = on_list_content_get_cb;
+       itc.func.state_get = NULL;
+       itc.func.del = NULL;
+
+       int size = eina_list_count(ad->peer_list);
+
+       if(size > 0) {
+               for (i = 0; i < size; i++) {
+                       elm_genlist_item_append(buddy_list, &itc, (void *) i, NULL, ELM_GENLIST_ITEM_NONE, on_buddy_clicked, (void*) i);
+               }
+       } else {
+               i = 1;
+               elm_genlist_item_append(buddy_list, &itc, (void *) i, NULL, ELM_GENLIST_ITEM_NONE, on_buddy_clicked, (void*) i);
+       }
+
+       evas_object_show(buddy_list);
+       //elm_box_pack_end(nf, buddy_list);
+
+    Evas_Object *left_button = elm_button_add(ad->layout);
+    elm_object_style_set(left_button, "naviframe/title_icon");
+    Evas_Object *licon = elm_image_add(ad->layout);
+    elm_image_file_set(licon, ui_utils_get_resource(SEARCH_ICON), NULL);
+
+    elm_image_resizable_set(licon, EINA_TRUE, EINA_TRUE);
+
+    evas_object_smart_callback_add(left_button, "clicked", on_search_clicked, ad);
+    elm_object_content_set(left_button, licon);
+    evas_object_show(left_button);
+
+    detail_nav_item = elm_naviframe_item_push(nf, "Buddy List", NULL, NULL, buddy_list, NULL);
+    elm_object_item_part_content_set(detail_nav_item, "title_right_btn", left_button);
+
+       /* left panel toggle button */
+    Evas_Object *btn1 = create_button(ad->nf, "naviframe/drawers", NULL);
+       evas_object_smart_callback_add(btn1, "clicked", left_panel_button_clicked_cb, ad);
+       elm_object_item_part_content_set(detail_nav_item, "title_left_btn", btn1);
+
+       evas_object_data_set(nf, "buddy_list", buddy_list);
+
+    eext_object_event_callback_add(nf, EEXT_CALLBACK_MORE, buddylist_naviframe_more_cb, ad);
+
+}
diff --git a/TelegramTizen/src/tg_chat_conv_view.c b/TelegramTizen/src/tg_chat_conv_view.c
new file mode 100644 (file)
index 0000000..527afca
--- /dev/null
@@ -0,0 +1,906 @@
+#include "tg_chat_conv_view.h"
+#include "tg_db_wrapper.h"
+#include "tg_common.h"
+#include "server_requests.h"
+
+typedef struct appdata_chat_conv_view{
+       peer_with_pic_s *sel_item;
+       const char *name;
+       Evas_Object *nf;
+       int num_of_bubbles;
+       int total_messages;
+       Evas_Object *chat_bg_box_layout;
+       Evas_Object *chat_bg_box;
+       Evas_Object *scroll_view;
+       Evas_Object *main_box;
+       Evas_Object *chat_box;
+       Evas_Object *entry_box;
+       Evas_Object *entry_box_layout;
+       Evas_Object *chat_box_layout;
+       Evas_Object *main_layout;
+       Evas_Object *attach_icon;
+       Evas_Object *text_entry;
+       Evas_Object *smiley_icon;
+       Evas_Object *send_icon;
+       Eina_List *sent_pics;
+       Eina_List *receive_pics;
+       appdata_s* ad;
+} appdata_chat_conv_view_s;
+
+static appdata_chat_conv_view_s chat_conv_view_data = {0,};
+
+
+typedef enum {
+       CHAT_MESSAGE_BUBBLE_NONE = 0,
+       CHAT_MESSAGE_BUBBLE_SENT,
+       CHAT_MESSAGE_BUBBLE_RECEIVE,
+       CHAT_MESSAGE_BUBBLE_LAST
+} Chat_message_Bubble_Style;
+
+#define CHAT_BUBBLE_TEXT_WIDTH 200
+#define CHAT_BUBBLE_MAIN_TEXT_STYLE "<font_size=30>%s</font_size>"
+#define CHAT_BUBBLE_SUB_TEXT_STYLE "<font_size=20 font_weight=Bold color=#000000>%s</font_size>"
+
+static Evas_Object *create_bubble_table(Evas_Object *parent, Chat_message_Bubble_Style style, const char *main_text, const char *sub_text);
+static Evas_Object *create_image_bubble_table(Evas_Object *parent, Chat_message_Bubble_Style style, const char *file_path, const char *sub_text, char* media_id);
+static void bubble_msg_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+void send_image_to_buddy(appdata_chat_conv_view_s *ad, const char* file_path);
+
+//static void on_msg_sent_to_buddy(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M);
+
+static void on_chat_item_clicked(void *data, Evas_Object *obj, void *event_info)
+{
+       char* media_id_str = (char*)data;
+       long long media_id = atoll(media_id_str);
+       char* file_path = get_image_path_from_db(media_id);
+       if (!file_path || strlen(file_path) <= 0) {
+           // request service to download the image.
+               send_request_for_image_downloading(chat_conv_view_data.ad->service_client, chat_conv_view_data.sel_item->use_data->peer_id, media_id);
+       } else {
+
+       }
+}
+
+void on_message_sent_to_buddy_successfully(tg_message_s *M, int type_of_chat)
+{
+       // update UI
+}
+
+void on_message_read_by_buddy_successfully(tg_message_s *M, int type_of_chat)
+{
+       // update UI
+}
+
+void on_received_image_loaded(int buddy_id, long long media_id, const char* file_path)
+{
+       // evas_object_data_set(main_image, "media_id", (void*)media_id);
+       if(chat_conv_view_data.receive_pics) {
+               int size = eina_list_count(chat_conv_view_data.receive_pics);
+
+               for(int i = 0 ; i < size ; i++) {
+                       Evas_Object* img = eina_list_nth(chat_conv_view_data.receive_pics, i);
+                       char* temp_media_id = (char*)evas_object_data_get(img, "media_id");
+                       long long lmedia_id = atoll(temp_media_id);
+                       if(lmedia_id == media_id) {
+                               if (elm_image_file_set(img, file_path, NULL) == EINA_FALSE) {
+                                       // TODO: error
+                               }
+                               chat_conv_view_data.receive_pics = eina_list_remove(chat_conv_view_data.receive_pics, img);
+                               break;
+                       }
+               }
+       }
+}
+
+void on_img_app_control_reply_cb(app_control_h request, app_control_h reply, app_control_result_e result, void *user_data)
+{
+       if (result == APP_CONTROL_RESULT_SUCCEEDED) {
+               appdata_chat_conv_view_s *ad = user_data;
+               char* file_path = NULL;
+               char** path_arryay = NULL;
+               int array_length = 0;
+               app_control_get_extra_data_array(reply, APP_CONTROL_DATA_SELECTED, &path_arryay,  &array_length);
+
+               for(int i = 0 ; i < array_length ; i++) {
+                       file_path = strdup(path_arryay[i]);
+                       send_image_to_buddy(ad, file_path);
+                       free(file_path);
+                       break;
+               }
+       }
+}
+
+static void on_attach_clicked(void *data, Evas_Object *obj, void *event_info)
+{
+       app_control_h app_control;
+       int ret = app_control_create(&app_control);
+       if(ret != APP_CONTROL_ERROR_NONE) {
+               show_toast(chat_conv_view_data.ad, "Error: Can not load image picker");
+               return;
+       }
+       app_control_set_operation(app_control, APP_CONTROL_OPERATION_PICK);
+       app_control_set_mime(app_control,"image/*");
+       app_control_send_launch_request(app_control, &on_img_app_control_reply_cb, &chat_conv_view_data);
+       app_control_destroy(app_control);
+}
+
+
+
+static void on_text_entry_clicked(void *data, Evas_Object *obj, void *event_info)
+{
+       elm_entry_input_panel_hide(chat_conv_view_data.text_entry);
+       elm_entry_input_panel_layout_set(chat_conv_view_data.text_entry,ELM_INPUT_PANEL_LAYOUT_NORMAL);
+       elm_entry_input_panel_show(chat_conv_view_data.text_entry);
+}
+
+
+
+static void on_smiley_clicked(void *data, Evas_Object *obj, void *event_info)
+{
+       elm_entry_input_panel_hide(chat_conv_view_data.text_entry);
+       elm_entry_input_panel_layout_set(chat_conv_view_data.text_entry,ELM_INPUT_PANEL_LAYOUT_EMOTICON);
+       elm_entry_input_panel_show(chat_conv_view_data.text_entry);
+}
+
+
+#if 0
+void on_chat_buddy_msg_marked_read(struct tgl_state *TLS, int num, struct tgl_message *list[])
+{
+
+}
+
+
+void on_buddy_pic_msg_loaded(struct tgl_state *TLS, void *callback_extra, int success, char *filename)
+{
+       if(filename && success && callback_extra) {
+               struct tgl_message* M = (char*)callback_extra;
+               Evas_Object *bubble_table = NULL;
+
+               time_t t = M->date;
+               const char *format = "%H:%M";
+               struct tm lt;
+               char res[32];
+               (void) localtime_r(&t, &lt);
+
+               if (strftime(res, sizeof(res), format, &lt) == 0) {
+                       (void) fprintf(stderr,  "strftime(3): cannot format supplied "
+                                       "date/time into buffer of size %u "
+                                       "using: '%s'\n",
+                                       sizeof(res), format);
+                       //exit(0);
+               }
+
+               update_photo_info_in_db(M, filename, 0);
+
+       bubble_table = create_image_bubble_table(chat_conv_view_data.ad->win, CHAT_MESSAGE_BUBBLE_RECEIVE,
+                       filename,
+                       res);
+       //evas_object_smart_callback_add(bubble_table, "clicked", on_chat_item_clicked, filename);
+               evas_object_show(bubble_table);
+               elm_box_pack_end(chat_conv_view_data.main_box, bubble_table);
+               evas_object_event_callback_add(chat_conv_view_data.main_box, EVAS_CALLBACK_RESIZE, bubble_msg_resize_cb, &chat_conv_view_data);
+       }
+}
+#endif
+
+void on_chat_buddy_msg_receive(tg_message_s *M, int type_of_chat)
+{
+       int peer_id = 0;
+       if(type_of_chat == TGL_PEER_USER) {
+               peer_id = M->from_id;
+       } else if(type_of_chat == TGL_PEER_CHAT) {
+               peer_id = M->to_id;
+       }
+
+       if(M) {
+               if(peer_id == chat_conv_view_data.sel_item->use_data->peer_id) {
+                       //M->message
+                       Evas_Object *bubble_table = NULL;
+                       time_t t = M->date;
+                       const char *format = "%H:%M";
+                       struct tm lt;
+                       char res[32];
+                       (void) localtime_r(&t, &lt);
+
+               if (strftime(res, sizeof(res), format, &lt) == 0) {
+                       (void) fprintf(stderr,  "strftime(3): cannot format supplied "
+                                               "date/time into buffer of size %u "
+                                               "using: '%s'\n",
+                                               sizeof(res), format);
+                       //exit(0);
+               }
+
+               if(M->media_type == tgl_message_media_none) {
+
+                       bubble_table = create_bubble_table(chat_conv_view_data.ad->win, CHAT_MESSAGE_BUBBLE_RECEIVE,
+                                       M->message,
+                                       res);
+                               evas_object_show(bubble_table);
+                               elm_box_pack_end(chat_conv_view_data.main_box, bubble_table);
+                               evas_object_event_callback_add(chat_conv_view_data.main_box, EVAS_CALLBACK_RESIZE, bubble_msg_resize_cb, &chat_conv_view_data);
+               } else if(M->media_type == tgl_message_media_photo) {
+                       // load photo
+#if 0
+                       struct tgl_photo* pic = &(M->media.photo);
+                       if(pic) {
+                               tgl_do_load_photo(TLS, pic ,&on_buddy_pic_msg_loaded,M);
+                       }
+#endif
+                       char* path = ui_utils_get_resource(BLUR_BG);
+                       bubble_table = create_image_bubble_table(chat_conv_view_data.ad->win, CHAT_MESSAGE_BUBBLE_RECEIVE,
+                                       path,
+                                       res, M->media_id);
+                       evas_object_show(bubble_table);
+                       elm_box_pack_end(chat_conv_view_data.main_box, bubble_table);
+                       evas_object_event_callback_add(chat_conv_view_data.main_box, EVAS_CALLBACK_RESIZE, bubble_msg_resize_cb, &chat_conv_view_data);
+               }
+               }
+       }
+}
+
+
+static int chat_history_db_callback(void *data, int argc, char **argv, char **azColName) {
+
+       int temp_from_id = chat_conv_view_data.sel_item->use_data->peer_id;
+       char from_id[50];
+       sprintf(from_id, "%d", temp_from_id);
+
+       int temp_own_id = chat_conv_view_data.ad->user_id.id;
+       char own_id[50];
+       sprintf(own_id, "%d", temp_own_id);
+
+       Eina_Bool is_sent_msg = EINA_FALSE;
+       char* message = NULL;
+       char* msg_time = NULL;
+       char* media_type_str = NULL;
+       char* media_id_str = NULL;
+
+       for (int i=0; i < argc; i++) {
+               if (strcmp(azColName[i], "from_id") == 0) {
+                       char* tmp_val = argv[i];
+                       if(strcmp(tmp_val, from_id) == 0 ) {
+                               is_sent_msg = EINA_FALSE;
+                       } else {
+                               is_sent_msg = EINA_TRUE;
+                       }
+               } else if (strcmp(azColName[i], "message") == 0) {
+                       message = strdup(argv[i]);
+               } else if (strcmp(azColName[i], "date") == 0) {
+                       msg_time = strdup(argv[i]);
+               } else if (strcmp(azColName[i], "media_type") == 0) {
+                       media_type_str = strdup(argv[i]);
+               } else if (strcmp(azColName[i], "media_id") == 0) {
+                       media_id_str = strdup(argv[i]);
+               }
+       }
+
+       int media_type = atoi(media_type_str);
+       if(media_type == tgl_message_media_none) {
+               Evas_Object *bubble_table;
+               int time_val = strtol(msg_time, (char**)NULL, 10);
+               time_t t = time_val;
+               const char *format = "%H:%M";
+               struct tm lt;
+               char res[32];
+               (void) localtime_r(&t, &lt);
+
+               if (strftime(res, sizeof(res), format, &lt) == 0) {
+                       (void) fprintf(stderr,  "strftime(3): cannot format supplied "
+                                       "date/time into buffer of size %u "
+                                       "using: '%s'\n",
+                                       sizeof(res), format);
+               }
+               if(is_sent_msg) {
+                       bubble_table = create_bubble_table(chat_conv_view_data.ad->win, CHAT_MESSAGE_BUBBLE_SENT,
+                                       message,
+                                       res);
+               } else {
+                       bubble_table = create_bubble_table(chat_conv_view_data.ad->win, CHAT_MESSAGE_BUBBLE_RECEIVE,
+                                       message,
+                                       res);
+               }
+               elm_box_pack_end(chat_conv_view_data.main_box, bubble_table);
+
+       } else if(media_type == tgl_message_media_photo) {
+
+               long long media_id = atoll(media_id_str);
+
+               char* img_path = get_image_path_from_db(media_id);
+
+               if (img_path == NULL || strlen(img_path) == 0) {
+                       img_path = ui_utils_get_resource(BLUR_BG);
+               }
+
+               Evas_Object *bubble_table = NULL;
+               int time_val = strtol(msg_time, (char**)NULL, 10);
+               time_t t = time_val;
+               const char *format = "%H:%M";
+               struct tm lt;
+               char res[32];
+               (void) localtime_r(&t, &lt);
+
+               if (strftime(res, sizeof(res), format, &lt) == 0) {
+                       (void) fprintf(stderr,  "strftime(3): cannot format supplied "
+                                       "date/time into buffer of size %u "
+                                       "using: '%s'\n",
+                                       sizeof(res), format);
+                       //exit(0);
+               }
+               if(is_sent_msg) {
+               bubble_table = create_image_bubble_table(chat_conv_view_data.ad->win, CHAT_MESSAGE_BUBBLE_SENT,
+                               img_path,
+                               res, (void*)media_id_str);
+               } else {
+               bubble_table = create_image_bubble_table(chat_conv_view_data.ad->win, CHAT_MESSAGE_BUBBLE_RECEIVE,
+                               img_path,
+                               res, (void*)media_id_str);
+               }
+               evas_object_show(bubble_table);
+               elm_box_pack_end(chat_conv_view_data.main_box, bubble_table);
+
+       } else if(media_type == tgl_message_media_document) {
+
+       } else if(media_type == tgl_message_media_geo) {
+
+       } else if(media_type == tgl_message_media_contact) {
+
+       } else if(media_type == tgl_message_media_unsupported) {
+
+       } else if(media_type == tgl_message_media_photo_encr) {
+
+       } else if(media_type == tgl_message_media_document_encr) {
+
+       } else  {
+
+       }
+
+       evas_object_event_callback_add(chat_conv_view_data.main_box, EVAS_CALLBACK_RESIZE, bubble_msg_resize_cb, &chat_conv_view_data);
+       return 0;
+}
+
+#if 0
+void on_msg_sent_to_buddy(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M)
+{
+       int t = callback_extra;
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       if(db) {
+               char* table_name = "buddy_info_table";
+               int user_id = M->to_id.id;
+               char usr_str[50];
+               sprintf(usr_str,"%d",user_id);
+
+               char* where_clause = (char*)malloc(strlen("user_id = ") + strlen(usr_str) + 1);
+               strcpy(where_clause, "user_id = ");
+               strcat(where_clause, usr_str);
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, "TEXT");
+
+               Eina_List* col_names = NULL;
+               col_names = eina_list_append(col_names, "phone");
+
+               Eina_List* vals = get_values_from_table_sync(db, table_name, col_names, col_types, where_clause);
+               close_database(db);
+
+               char* phone_no = NULL;
+
+               if(!vals) {
+                       show_toast("DB error");
+                       return;
+               } else {
+                       int row_count = eina_list_count(vals);
+
+                       for (int i = 0 ; i < row_count ; i++) {
+                               Eina_List* row_vals = eina_list_nth(vals, i);
+                               phone_no = (char*)eina_list_nth(row_vals, 0);
+                               if(!phone_no) {
+                                       show_toast("DB Error");
+                                       return;
+                               } else {
+                                       break;
+                               }
+                               eina_list_free(row_vals);
+                       }
+                       eina_list_free(vals);
+               }
+
+               if(phone_no) {
+                       char* tb_name = get_table_name_from_number(phone_no);
+
+                       update_msg_into_db(M,tb_name, t);
+
+                       if (M->media.type == tgl_message_media_photo) {
+                               update_photo_info_in_db(M, NULL, t);
+                       }
+
+                       free(tb_name);
+                       free(phone_no);
+               }
+       }
+       close_database(db);
+}
+#endif
+
+
+void
+bubble_msg_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       appdata_chat_conv_view_s *ad = data;
+
+       Evas_Coord w, h;
+
+       //elm_scroller_child_size_get(ad->scroll_view, &w, &h);
+       evas_object_size_hint_min_get(ad->main_box, &w, &h);
+
+       elm_scroller_region_show(ad->scroll_view, 0, h, 0, 0);
+
+       evas_object_event_callback_del(ad->main_box, EVAS_CALLBACK_RESIZE, bubble_msg_resize_cb);
+}
+
+
+void send_message_to_buddy(appdata_chat_conv_view_s *ad)
+{
+       Evas_Object *bubble_table;
+
+       if (!ad->text_entry)
+               return;
+       const char* text_to_send = elm_entry_entry_get(ad->text_entry);
+       if (!text_to_send || (strlen(text_to_send) == 0))
+               return;
+
+       // send request to service
+       send_request_for_message_transport(ad->ad->service_client, ad->sel_item->use_data->peer_id, tgl_message_media_none, text_to_send, chat_conv_view_data.sel_item->use_data->peer_type);
+
+       bubble_table = create_bubble_table(ad->ad->win, CHAT_MESSAGE_BUBBLE_SENT,
+                       elm_entry_entry_get(ad->text_entry),
+                       get_current_time());
+
+       evas_object_show(bubble_table);
+       elm_box_pack_end(ad->main_box, bubble_table);
+       elm_entry_entry_set(ad->text_entry, "");
+       //free(text_to_send);
+
+       evas_object_event_callback_add(ad->main_box, EVAS_CALLBACK_RESIZE, bubble_msg_resize_cb, ad);
+}
+
+void send_image_to_buddy(appdata_chat_conv_view_s *ad, const char* file_path)
+{
+       Evas_Object *bubble_table;
+       send_request_for_media_transport(ad->ad->service_client, ad->sel_item->use_data->peer_id, tgl_message_media_photo, file_path);
+       int t = time(NULL); // to identify message after getting id.
+       char unique_id[50];
+       sprintf(unique_id, "%d", t);
+       bubble_table = create_image_bubble_table(ad->ad->win, CHAT_MESSAGE_BUBBLE_SENT, file_path, get_current_time(), unique_id);
+       evas_object_show(bubble_table);
+       elm_box_pack_end(ad->main_box, bubble_table);
+       evas_object_event_callback_add(ad->main_box, EVAS_CALLBACK_RESIZE, bubble_msg_resize_cb, ad);
+}
+
+static void load_chat_history(appdata_chat_conv_view_s *ad)
+{
+       int buddy_id = chat_conv_view_data.sel_item->use_data->peer_id;
+
+#if 0
+       Eina_List* buddy_details_array = get_buddy_info(buddy_id);
+       if (buddy_details_array && eina_list_count(buddy_details_array) > 0) {
+               Eina_List* buddy_details = eina_list_nth(buddy_details_array, 0);
+               if (buddy_details && eina_list_count(buddy_details) > 0) {
+                       char* phone = eina_list_nth(buddy_details, 7);
+                       if (phone) {
+                               // get table name from phone number
+                               char* tablename = get_table_name_from_number(phone);
+                               Eina_List* col_names = NULL;
+                               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MESSAGE_ID);
+                               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_FLAGS);
+                               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_FWD_FROM_ID);
+                               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_FWD_DATE);
+                               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_FROM_ID);
+                               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_TO_ID);
+                               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_OUT_MSG);
+                               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_UNREAD);
+                               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_DATE);
+                               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_SERVICE);
+                               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MESSAGE);
+                               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MESSAGE_LENGTH);
+                               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MEDIA_TYPE);
+                               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MEDIA_ID);
+                               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_UNIQUE_ID);
+                               sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+                               Eina_Bool ret = get_values_from_table(db, tablename, col_names, &chat_history_db_callback, NULL, NULL);
+                               if(!ret) {
+                                       //show_toast("DB Error: Failed to load chat");
+                               }
+                               eina_list_free(col_names);
+                               close_database(db);
+                       }
+               }
+       }
+#else
+       char* tablename = get_table_name_from_number(buddy_id);
+       Eina_List* col_names = NULL;
+       col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MESSAGE_ID);
+       col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_FLAGS);
+       col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_FWD_FROM_ID);
+       col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_FWD_DATE);
+       col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_FROM_ID);
+       col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_TO_ID);
+       col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_OUT_MSG);
+       col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_UNREAD);
+       col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_DATE);
+       col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_SERVICE);
+       col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MESSAGE);
+       col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MESSAGE_LENGTH);
+       col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MEDIA_TYPE);
+       col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MEDIA_ID);
+       col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_UNIQUE_ID);
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       Eina_Bool ret = get_values_from_table(db, tablename, col_names, &chat_history_db_callback, NULL, NULL);
+       if(!ret) {
+               //show_toast("DB Error: Failed to load chat");
+       }
+       eina_list_free(col_names);
+       close_database(db);
+       free(tablename);
+#endif
+}
+
+
+Evas_Object* create_image_bubble_table(Evas_Object *parent, Chat_message_Bubble_Style style, const char *file_path, const char *sub_text, char* media_id)
+{
+       Evas_Object *bubble_table,*main_box, *sub_box, *main_image, *sub_label;
+       Eina_Strbuf *strbuf = NULL;
+       char *buf = NULL;
+
+       bubble_table = elm_table_add(parent);
+       evas_object_size_hint_weight_set(bubble_table, EVAS_HINT_EXPAND, 0.0);
+       elm_table_padding_set(bubble_table, ELM_SCALE_SIZE(10), ELM_SCALE_SIZE(10));
+       evas_object_show(bubble_table);
+
+       /* Prepare string buffer for making mark up text */
+       strbuf = eina_strbuf_new();
+
+       Evas_Object* layout = elm_layout_add(bubble_table);
+       char edj_path[PATH_MAX] = {0, };
+       app_get_resource(EDJ_CHAT_CONV_FILE, edj_path, (int)PATH_MAX);
+
+       if(style == CHAT_MESSAGE_BUBBLE_SENT) {
+               elm_layout_file_set(layout, edj_path, "chat_send_pic_item_box");
+       } else if(style == CHAT_MESSAGE_BUBBLE_RECEIVE) {
+               elm_layout_file_set(layout, edj_path, "chat_recv_pic_item_box");
+       }
+
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(layout);
+
+       main_box = elm_box_add(bubble_table);
+       evas_object_size_hint_align_set(main_box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(main_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+    evas_object_show(main_box);
+
+
+    main_image = elm_image_add(bubble_table);
+
+    if (elm_image_file_set(main_image, file_path, NULL) == EINA_FALSE) {
+       // TODO:
+    }
+
+       int win_w, win_h;
+       elm_win_screen_size_get(chat_conv_view_data.ad->win, NULL, NULL, &win_w, &win_h);
+
+    int w;
+    int h;
+    elm_image_object_size_get(main_image, &w, &h);
+    elm_image_resizable_set(main_image, EINA_TRUE, EINA_TRUE);
+
+    //evas_object_size_hint_min_set(main_image, w, h);
+    evas_object_size_hint_min_set(main_image, 400, 400);
+
+    evas_object_size_hint_max_set(main_image, 3*(win_w/4), (win_h/4));
+    //evas_object_resize(main_image, w, h);
+    elm_image_aspect_fixed_set(main_image,EINA_TRUE);
+
+       evas_object_repeat_events_set(main_image, EINA_TRUE);
+
+       evas_object_smart_callback_add(main_image, "clicked", on_chat_item_clicked, (void*)media_id);
+
+       evas_object_show(main_image);
+
+       elm_box_pack_end(main_box,layout);
+
+       evas_object_data_set(main_image, "media_id", (void*)media_id);
+
+       sub_box = elm_box_add(bubble_table);
+       evas_object_size_hint_align_set(sub_box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(sub_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+    evas_object_show(sub_box);
+
+       /* Make a mark up text to string buffer for sub label widget */
+       eina_strbuf_append_printf(strbuf, CHAT_BUBBLE_SUB_TEXT_STYLE, sub_text);
+       /* Get the string from string buffer. String buffer will be empty. */
+       buf = eina_strbuf_string_steal(strbuf);
+       /* Free string buffer */
+       eina_strbuf_free(strbuf);
+
+       sub_label = elm_label_add(bubble_table);
+       elm_object_text_set(sub_label, buf);
+       evas_object_size_hint_weight_set(sub_label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_repeat_events_set(sub_label, EINA_TRUE);
+       evas_object_show(sub_label);
+
+       elm_box_pack_end(sub_box,sub_label);
+
+       switch (style) {
+               case CHAT_MESSAGE_BUBBLE_SENT:
+                       chat_conv_view_data.sent_pics = eina_list_append(chat_conv_view_data.sent_pics, main_image);
+                       elm_object_part_content_set(layout, "swallow.chat_send_pic", main_image);
+                       evas_object_size_hint_align_set(bubble_table, 1.0, 0.0);
+                       evas_object_size_hint_align_set(sub_label, 1.0, EVAS_HINT_FILL);
+                       elm_table_pack(bubble_table, main_box, 0, 0, 1, 1);
+                       elm_table_pack(bubble_table, sub_box, 0, 1, 1, 1);
+                       break;
+               case CHAT_MESSAGE_BUBBLE_RECEIVE:
+                       chat_conv_view_data.receive_pics = eina_list_append(chat_conv_view_data.receive_pics, main_image);
+                       elm_object_part_content_set(layout, "swallow.chat_recv_pic", main_image);
+                       evas_object_size_hint_align_set(bubble_table, 0.0, 0.0);
+                       evas_object_size_hint_align_set(sub_label, 0.0, EVAS_HINT_FILL);
+                       elm_table_pack(bubble_table, main_box, 0, 0, 1, 1);
+                       elm_table_pack(bubble_table, sub_box, 0, 1, 1, 1);
+                       break;
+               case CHAT_MESSAGE_BUBBLE_NONE:
+               case CHAT_MESSAGE_BUBBLE_LAST:
+               default:
+                       break;
+       }
+
+       return bubble_table;
+}
+
+Evas_Object *
+create_bubble_table(Evas_Object *parent, Chat_message_Bubble_Style style, const char *main_text, const char *sub_text)
+{
+       Evas_Object *bubble_table,*main_box, *sub_box, *main_label, *sub_label;
+       Eina_Strbuf *strbuf = NULL;
+       char *buf = NULL;
+
+       bubble_table = elm_table_add(parent);
+       evas_object_size_hint_weight_set(bubble_table, EVAS_HINT_EXPAND, 0.0);
+       elm_table_padding_set(bubble_table, ELM_SCALE_SIZE(5), ELM_SCALE_SIZE(5));
+       evas_object_show(bubble_table);
+
+       /* Prepare string buffer for making mark up text */
+       strbuf = eina_strbuf_new();
+       /* Make a mark up text to string buffer for main label widget */
+       eina_strbuf_append_printf(strbuf, CHAT_BUBBLE_MAIN_TEXT_STYLE, main_text);
+       /* Get the string from string buffer. String buffer will be empty. */
+       buf = eina_strbuf_string_steal(strbuf);
+
+
+       Evas_Object* layout = elm_layout_add(bubble_table);
+       char edj_path[PATH_MAX] = {0, };
+       app_get_resource(EDJ_CHAT_CONV_FILE, edj_path, (int)PATH_MAX);
+
+       if(style == CHAT_MESSAGE_BUBBLE_SENT) {
+               elm_layout_file_set(layout, edj_path, "chat_send_item_box");
+       } else if(style == CHAT_MESSAGE_BUBBLE_RECEIVE) {
+               elm_layout_file_set(layout, edj_path, "chat_recv_item_box");
+       }
+
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(layout);
+
+       main_box = elm_box_add(bubble_table);
+       evas_object_size_hint_align_set(main_box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(main_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+    evas_object_show(main_box);
+
+
+       main_label = elm_label_add(bubble_table);
+       elm_object_text_set(main_label, buf);
+       elm_label_wrap_width_set(main_label, ELM_SCALE_SIZE(CHAT_BUBBLE_TEXT_WIDTH));
+       elm_label_line_wrap_set(main_label, ELM_WRAP_MIXED);
+       evas_object_size_hint_weight_set(main_label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(main_label, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_repeat_events_set(main_label, EINA_TRUE);
+       evas_object_show(main_label);
+
+       elm_box_pack_end(main_box,layout);
+
+       sub_box = elm_box_add(bubble_table);
+       evas_object_size_hint_align_set(sub_box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(sub_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+    evas_object_show(sub_box);
+
+       /* Make a mark up text to string buffer for sub label widget */
+       eina_strbuf_append_printf(strbuf, CHAT_BUBBLE_SUB_TEXT_STYLE, sub_text);
+       /* Get the string from string buffer. String buffer will be empty. */
+       buf = eina_strbuf_string_steal(strbuf);
+       /* Free string buffer */
+       eina_strbuf_free(strbuf);
+
+       sub_label = elm_label_add(bubble_table);
+       elm_object_text_set(sub_label, buf);
+       evas_object_size_hint_weight_set(sub_label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_repeat_events_set(sub_label, EINA_TRUE);
+       evas_object_show(sub_label);
+
+       elm_box_pack_end(sub_box,sub_label);
+
+       switch (style) {
+               case CHAT_MESSAGE_BUBBLE_SENT:
+                       elm_object_part_content_set(layout, "swallow.chat_send_text", main_label);
+                       evas_object_size_hint_align_set(bubble_table, 1.0, 0.0);
+                       evas_object_size_hint_align_set(sub_label, 1.0, EVAS_HINT_FILL);
+                       elm_table_pack(bubble_table, main_box, 0, 0, 1, 1);
+                       elm_table_pack(bubble_table, sub_box, 0, 1, 1, 1);
+                       break;
+               case CHAT_MESSAGE_BUBBLE_RECEIVE:
+                       elm_object_part_content_set(layout, "swallow.chat_recv_text", main_label);
+                       evas_object_size_hint_align_set(bubble_table, 0.0, 0.0);
+                       evas_object_size_hint_align_set(sub_label, 0.0, EVAS_HINT_FILL);
+                       elm_table_pack(bubble_table, main_box, 0, 0, 1, 1);
+                       elm_table_pack(bubble_table, sub_box, 0, 1, 1, 1);
+                       break;
+               case CHAT_MESSAGE_BUBBLE_NONE:
+               case CHAT_MESSAGE_BUBBLE_LAST:
+               default:
+                       break;
+       }
+
+       return bubble_table;
+}
+
+
+static void on_send_clicked(void *data, Evas_Object *obj, void *event_info)
+{
+       send_message_to_buddy(data);
+}
+
+
+void launch_chat_conv_view_cb(void *data, int user_id)
+{
+       appdata_s* ad = data;
+       ad->current_app_state = TG_BUDDY_CHAT_CONV_STATE;
+       chat_conv_view_data.ad = ad;
+       chat_conv_view_data.nf = ad->nf;
+       chat_conv_view_data.sent_pics = NULL;
+       chat_conv_view_data.receive_pics = NULL;
+
+       chat_conv_view_data.sel_item = eina_list_nth(ad->peer_list, user_id);
+       int w, h;
+       elm_win_screen_size_get(ad->win, NULL, NULL, &w, &h);
+       h -= 130;
+
+       char edj_path[PATH_MAX] = {0, };
+
+       evas_object_hide(ad->panel);
+       elm_layout_theme_set(ad->layout, "layout", "application", "default");
+       chat_conv_view_data.chat_bg_box_layout = elm_layout_add(ad->win);
+       app_get_resource(EDJ_CHAT_CONV_FILE, edj_path, (int)PATH_MAX);
+       elm_layout_file_set(chat_conv_view_data.chat_bg_box_layout, edj_path, "chat_bg_conv");
+       //evas_object_size_hint_min_set(chat_conv_view_data.chat_bg_box_layout, w, h);
+       evas_object_show(chat_conv_view_data.chat_bg_box_layout);
+
+       chat_conv_view_data.chat_bg_box = elm_box_add(chat_conv_view_data.chat_bg_box_layout);
+       evas_object_size_hint_align_set(chat_conv_view_data.chat_bg_box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(chat_conv_view_data.chat_bg_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+    elm_object_part_content_set(chat_conv_view_data.chat_bg_box_layout, "swallow.chat_bg_box", chat_conv_view_data.chat_bg_box);
+    evas_object_show(chat_conv_view_data.chat_bg_box);
+
+    chat_conv_view_data.main_layout = elm_layout_add(ad->win);
+       app_get_resource(EDJ_CHAT_CONV_FILE, edj_path, (int)PATH_MAX);
+       elm_layout_file_set(chat_conv_view_data.main_layout, edj_path, "chat_conv");
+       evas_object_size_hint_min_set(chat_conv_view_data.main_layout, w, h);
+       evas_object_show(chat_conv_view_data.main_layout);
+
+       chat_conv_view_data.chat_box = elm_box_add(chat_conv_view_data.main_layout);
+       evas_object_size_hint_align_set(chat_conv_view_data.chat_box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(chat_conv_view_data.chat_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+    elm_object_part_content_set(chat_conv_view_data.main_layout, "swallow.chat_box", chat_conv_view_data.chat_box);
+    evas_object_show(chat_conv_view_data.chat_box);
+
+       chat_conv_view_data.entry_box = elm_box_add(chat_conv_view_data.main_layout);
+       evas_object_size_hint_align_set(chat_conv_view_data.entry_box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(chat_conv_view_data.entry_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+    elm_object_part_content_set(chat_conv_view_data.main_layout, "swallow.entry_box", chat_conv_view_data.entry_box);
+    evas_object_show(chat_conv_view_data.entry_box);
+
+       chat_conv_view_data.scroll_view = elm_scroller_add(chat_conv_view_data.chat_box);
+       evas_object_size_hint_align_set(chat_conv_view_data.scroll_view, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(chat_conv_view_data.scroll_view, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_scroller_bounce_set(chat_conv_view_data.scroll_view, EINA_FALSE, EINA_TRUE);
+       evas_object_show(chat_conv_view_data.scroll_view);
+
+
+       chat_conv_view_data.chat_box_layout = elm_layout_add(ad->win);
+       elm_layout_file_set(chat_conv_view_data.chat_box_layout, edj_path, "chat_display_box");
+       evas_object_size_hint_align_set(chat_conv_view_data.chat_box_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(chat_conv_view_data.chat_box_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(chat_conv_view_data.chat_box_layout);
+
+       chat_conv_view_data.main_box = elm_box_add(chat_conv_view_data.chat_box_layout);
+       evas_object_size_hint_align_set(chat_conv_view_data.main_box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(chat_conv_view_data.main_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+    elm_object_part_content_set(chat_conv_view_data.chat_box_layout, "swallow.chat_box", chat_conv_view_data.main_box);
+    elm_box_align_set(chat_conv_view_data.main_box,0.0, 1.0);
+    elm_box_padding_set(chat_conv_view_data.main_box, 25, 25);
+    elm_box_homogeneous_set(chat_conv_view_data.main_box, EINA_FALSE);
+
+    evas_object_show(chat_conv_view_data.main_box);
+       elm_object_content_set(chat_conv_view_data.scroll_view, chat_conv_view_data.chat_box_layout);
+
+
+       elm_box_pack_end(chat_conv_view_data.chat_box, chat_conv_view_data.scroll_view);
+
+       /********************** entry layout*******************************/
+       chat_conv_view_data.entry_box_layout = elm_layout_add(ad->win);
+       elm_layout_file_set(chat_conv_view_data.entry_box_layout, edj_path, "chat_entry_box");
+       evas_object_size_hint_align_set(chat_conv_view_data.entry_box_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(chat_conv_view_data.entry_box_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(chat_conv_view_data.entry_box_layout);
+
+       chat_conv_view_data.attach_icon = elm_image_add(chat_conv_view_data.entry_box_layout);
+       evas_object_size_hint_align_set(chat_conv_view_data.attach_icon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(chat_conv_view_data.attach_icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+    elm_image_file_set(chat_conv_view_data.attach_icon, ui_utils_get_resource(ATTACH_ICON), NULL);
+    elm_image_resizable_set(chat_conv_view_data.attach_icon, EINA_TRUE, EINA_TRUE);
+    evas_object_show(chat_conv_view_data.attach_icon);
+    evas_object_smart_callback_add(chat_conv_view_data.attach_icon, "clicked", on_attach_clicked, &chat_conv_view_data);
+       elm_object_part_content_set(chat_conv_view_data.entry_box_layout, "swallow.attach_icon", chat_conv_view_data.attach_icon);
+
+       chat_conv_view_data.text_entry = elm_entry_add(chat_conv_view_data.entry_box_layout);
+       elm_object_part_text_set(chat_conv_view_data.text_entry, "elm.guide", "Enter Message");
+       elm_entry_line_wrap_set(chat_conv_view_data.text_entry, EINA_TRUE);
+       evas_object_size_hint_align_set(chat_conv_view_data.text_entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(chat_conv_view_data.text_entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(chat_conv_view_data.text_entry);
+       elm_entry_scrollable_set(chat_conv_view_data.text_entry, EINA_TRUE);
+       evas_object_smart_callback_add(chat_conv_view_data.text_entry, "clicked", on_text_entry_clicked, &chat_conv_view_data);
+       elm_object_part_content_set(chat_conv_view_data.entry_box_layout, "swallow.text_entry", chat_conv_view_data.text_entry);
+
+       chat_conv_view_data.smiley_icon = elm_image_add(chat_conv_view_data.entry_box_layout);
+       evas_object_size_hint_align_set(chat_conv_view_data.smiley_icon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(chat_conv_view_data.smiley_icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+    elm_image_file_set(chat_conv_view_data.smiley_icon, ui_utils_get_resource(SMILEY_ICON), NULL);
+    elm_image_resizable_set(chat_conv_view_data.smiley_icon, EINA_TRUE, EINA_TRUE);
+    evas_object_show(chat_conv_view_data.smiley_icon);
+    evas_object_smart_callback_add(chat_conv_view_data.smiley_icon, "clicked", on_smiley_clicked, &chat_conv_view_data);
+       elm_object_part_content_set(chat_conv_view_data.entry_box_layout, "swallow.smiely_icon", chat_conv_view_data.smiley_icon);
+
+       chat_conv_view_data.send_icon = elm_image_add(chat_conv_view_data.entry_box_layout);
+       evas_object_size_hint_align_set(chat_conv_view_data.send_icon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(chat_conv_view_data.send_icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+    elm_image_file_set(chat_conv_view_data.send_icon, ui_utils_get_resource(SEND_ICON), NULL);
+    elm_image_resizable_set(chat_conv_view_data.send_icon, EINA_TRUE, EINA_TRUE);
+    evas_object_show(chat_conv_view_data.send_icon);
+    evas_object_smart_callback_add(chat_conv_view_data.send_icon, "clicked", on_send_clicked, &chat_conv_view_data);
+       elm_object_part_content_set(chat_conv_view_data.entry_box_layout, "swallow.send_icon", chat_conv_view_data.send_icon);
+
+       /******************************************************************************************************/
+
+       elm_box_pack_end(chat_conv_view_data.entry_box, chat_conv_view_data.entry_box_layout);
+
+       //elm_box_pack_end(chat_conv_view_data.chat_bg_box, chat_conv_view_data.main_layout);
+
+       Elm_Object_Item* chat_nav_item = elm_naviframe_item_push(ad->nf, chat_conv_view_data.sel_item->use_data->print_name, NULL, NULL, chat_conv_view_data.main_layout, NULL);
+    elm_object_item_part_content_set(chat_nav_item, "title_left_btn", chat_conv_view_data.sel_item->contact_icon);
+
+    load_chat_history(&chat_conv_view_data);
+
+#if 0
+    set_msg_mark_read_app_callback(&on_chat_buddy_msg_marked_read);
+       set_msg_received_app_callback(&on_chat_buddy_msg_receive);
+#endif
+
+
+       evas_object_event_callback_add(chat_conv_view_data.main_box, EVAS_CALLBACK_RESIZE, bubble_msg_resize_cb, &chat_conv_view_data);
+
+/*     char* path = ui_utils_get_resource(SEARCH_ICON);
+       Evas_Object *bubble_table = NULL;
+       bubble_table = create_image_bubble_table(chat_conv_view_data.ad->win, CHAT_MESSAGE_BUBBLE_SENT,
+                       path,
+                       "10:50");
+       elm_box_pack_end(chat_conv_view_data.main_box, bubble_table);*/
+
+}
diff --git a/TelegramTizen/src/tg_db_wrapper.c b/TelegramTizen/src/tg_db_wrapper.c
new file mode 100644 (file)
index 0000000..7de0562
--- /dev/null
@@ -0,0 +1,923 @@
+/*
+ * tg_db_wrapper.c
+ *
+ *  Created on: Jun 26, 2015
+ *      Author: sandeep
+ */
+
+#include "tg_db_wrapper.h"
+
+
+void create_data_base_tables()
+{
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       if (db) {
+               char* table_name = USER_INFO_TABLE_NAME;
+               Eina_List* col_names = NULL;
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_USER_ID);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_PRINT_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_STRUCTURE_VERSION);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_PHOTO_PATH);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_PHOTO_ID);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_FIRST_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_LAST_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_PHONE_NO);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_ACCESS_HASH);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_REAL_FIRST_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_REAL_LAST_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_USER_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_ONLINE_STATUS);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_LAST_SEEN_TIME);
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_PRIMARY_KEY);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+               Eina_Bool ret = create_table(db, table_name, col_names, col_types);
+               if (!ret) {
+                       // error occured
+               }
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+
+               table_name = BUDDY_INFO_TABLE_NAME;
+               col_names = NULL;
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_BUDDY_ID);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PRINT_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_STRUCTURE_VERSION);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PHOTO_PATH);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PHOTO_ID);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_FIRST_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_LAST_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PHONE_NO);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_ACCESS_HASH);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_REAL_FIRST_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_REAL_LAST_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_BUDDY_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_ONLINE_STATUS);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_LAST_SEEN_TIME);
+
+               col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_PRIMARY_KEY);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+               ret = create_table(db, table_name, col_names, col_types);
+               if (!ret) {
+                       // error occured
+               }
+
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+
+               table_name = MEDIA_INFO_TABLE_NAME;
+               col_names = NULL;
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_MEDIA_ID);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_MEDIA_TYPE);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_ACCESS_HASH);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_USER_ID);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_DATE);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_CAPTION);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_LONGITUDE);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_LATITUDE);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_SIZES_NUM);
+               /********************************************************************/
+
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_TYPE1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_DC1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_VOL1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_ID1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_SECRET1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_WIDTH1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_HEIGHT1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_SIZE1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_DATA1);
+
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_TYPE2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_DC2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_VOL2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_ID2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_SECRET2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_WIDTH2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_HEIGHT2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_SIZE2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_DATA2);
+
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_TYPE3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_DC3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_VOL3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_ID3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_SECRET3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_WIDTH3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_HEIGHT3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_SIZE3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_DATA3);
+
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_TYPE4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_DC4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_VOL4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_ID4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_SECRET4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_WIDTH4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_HEIGHT4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_SIZE4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_DATA4);
+
+
+               /********************************************************************/
+
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHONE_NO);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_FIRST_NAME);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_LAST_NAME);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_FILE_PATH);
+
+               col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+               ret = create_table(db, table_name, col_names, col_types);
+               if (!ret) {
+                       // error occured
+               }
+
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+
+               table_name = CHAT_INFO_TABLE_NAME;
+               col_names = NULL;
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_CHAT_ID);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_FLAGS);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_PRINT_TITLE);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_STRUCT_VERSION);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_PHOTO_ID);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_PHOTO_PATH);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_TITLE);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_NO_OF_USERS);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_USER_LIST_SIZE);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_USER_LIST_VERSION);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_INVITER_ID);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_CHAT_USERS);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_DATE);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_VERSION);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_ADMIN_ID);
+
+               col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_PRIMARY_KEY);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+               ret = create_table(db, table_name, col_names, col_types);
+               if (!ret) {
+                       // error occured
+               }
+
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+
+               table_name = PEER_INFO_TABLE_NAME;
+               col_names = NULL;
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_CHAT_ID);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_PEER_TYPE);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_FLAGS);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_LAST_MESSAGE_ID);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_LAST_MESSAGE_DATE);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_PRINT_NAME);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_STRUCT_VERSION);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_NO_OF_UNREAD_MESSAGES);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_LAST_SEEN_TIME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PHOTO_PATH);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PHOTO_ID);
+
+               col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_PRIMARY_KEY);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+               ret = create_table(db, table_name, col_names, col_types);
+               if(!ret) {
+                       // error occured
+               }
+
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+
+               close_database(db);
+       }
+}
+
+Eina_List* get_all_peer_details()
+{
+       Eina_List* peer_details = NULL;
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       if (db) {
+               char* table_name = PEER_INFO_TABLE_NAME;
+               Eina_List* col_names = NULL;
+
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_CHAT_ID);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_PEER_TYPE);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_FLAGS);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_LAST_MESSAGE_ID);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_LAST_MESSAGE_DATE);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_PRINT_NAME);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_STRUCT_VERSION);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_NO_OF_UNREAD_MESSAGES);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_LAST_SEEN_TIME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PHOTO_PATH);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PHOTO_ID);
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_PRIMARY_KEY);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+               //peer_details = get_values_from_table_sync(db, table_name, col_names, col_types, NULL);
+               peer_details = get_values_from_table_sync_order_by(db, table_name, col_names, col_types, PEER_INFO_TABLE_LAST_MESSAGE_DATE, EINA_FALSE);
+
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+       }
+       return peer_details;
+}
+
+Eina_List* get_group_chat_details()
+{
+       Eina_List* chat_details = NULL;
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       if (db) {
+               char* table_name = CHAT_INFO_TABLE_NAME;
+               Eina_List* col_names = NULL;
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_CHAT_ID);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_FLAGS);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_PRINT_TITLE);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_STRUCT_VERSION);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_PHOTO_ID);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_PHOTO_PATH);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_TITLE);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_NO_OF_USERS);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_USER_LIST_SIZE);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_USER_LIST_VERSION);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_INVITER_ID);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_CHAT_USERS);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_DATE);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_VERSION);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_ADMIN_ID);
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_PRIMARY_KEY);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+               chat_details = get_values_from_table_sync(db, table_name, col_names, col_types, NULL);
+
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+       }
+       return chat_details;
+}
+
+tg_chat_info_s* get_chat_info(int chat_id)
+{
+       Eina_List* chat_details = NULL;
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       if (db) {
+               char* table_name = CHAT_INFO_TABLE_NAME;
+               Eina_List* col_names = NULL;
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_CHAT_ID);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_FLAGS);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_PRINT_TITLE);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_STRUCT_VERSION);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_PHOTO_ID);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_PHOTO_PATH);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_TITLE);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_NO_OF_USERS);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_USER_LIST_SIZE);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_USER_LIST_VERSION);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_INVITER_ID);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_CHAT_USERS);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_DATE);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_VERSION);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_ADMIN_ID);
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_PRIMARY_KEY);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+               char chat_id_str[50];
+               sprintf(chat_id_str, "%d", chat_id);
+
+               char* where_clause = (char*)malloc(strlen(CHAT_INFO_TABLE_CHAT_ID) + strlen(" = ") + strlen(chat_id_str) + 1);
+               strcpy(where_clause, CHAT_INFO_TABLE_CHAT_ID);
+               strcat(where_clause, " = ");
+               strcat(where_clause, chat_id_str);
+
+               chat_details = get_values_from_table_sync(db, table_name, col_names, col_types, where_clause);
+               free(where_clause);
+
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+       }
+
+
+       tg_chat_info_s* chat_info = NULL;
+
+       if (chat_details && eina_list_count(chat_details) > 0) {
+               Eina_List* ts_msg = eina_list_nth(chat_details, 0);
+
+               chat_info = (tg_chat_info_s*)malloc(sizeof(tg_chat_info_s));
+
+
+               int *temp_chat_id = (int*)eina_list_nth(ts_msg, 0);
+               if (temp_chat_id) {
+                       chat_info->chat_id  = *temp_chat_id;
+                       free(temp_chat_id);
+               }
+
+               int *temp_flags = (int*)eina_list_nth(ts_msg, 1);
+               if (temp_flags) {
+                       chat_info->flags  = *temp_flags;
+                       free(temp_flags);
+               }
+
+               char *temp_print_title = (char*)eina_list_nth(ts_msg, 2);
+               if (temp_print_title) {
+                       chat_info->print_title  = strdup(temp_print_title);
+                       free(temp_print_title);
+               }
+
+               int *temp_struct_ver = (int*)eina_list_nth(ts_msg, 3);
+               if (temp_struct_ver) {
+                       chat_info->struct_version  = *temp_struct_ver;
+                       free(temp_struct_ver);
+               }
+
+               char *temp_photo_id = (char*)eina_list_nth(ts_msg, 4);
+               if (temp_photo_id) {
+                       chat_info->photo_id  = atoll(temp_photo_id);
+                       free(temp_photo_id);
+               }
+
+               char *temp_photo_path = (char*)eina_list_nth(ts_msg, 5);
+               if (temp_photo_path) {
+                       chat_info->photo_path  = strdup(temp_photo_path);
+                       free(temp_photo_path);
+               }
+
+               char *temp_title = (char*)eina_list_nth(ts_msg, 6);
+               if (temp_title) {
+                       chat_info->title  = strdup(temp_title);
+                       free(temp_title);
+               }
+
+               int *temp_users_num = (int*)eina_list_nth(ts_msg, 7);
+               if (temp_users_num) {
+                       chat_info->users_num  = *temp_users_num;
+                       free(temp_users_num);
+               }
+
+               int *temp_user_list_size = (int*)eina_list_nth(ts_msg, 8);
+               if (temp_user_list_size) {
+                       chat_info->user_list_size  = *temp_user_list_size;
+                       free(temp_user_list_size);
+               }
+
+               int *temp_user_list_version = (int*)eina_list_nth(ts_msg, 9);
+               if (temp_user_list_version) {
+                       chat_info->user_list_version  = *temp_user_list_version;
+                       free(temp_user_list_version);
+               }
+
+               int *temp_inviter_id = (int*)eina_list_nth(ts_msg, 10);
+               if (temp_inviter_id) {
+                       chat_info->inviter_id  = *temp_inviter_id;
+                       free(temp_inviter_id);
+               }
+
+               char *temp_full_ids = (char*)eina_list_nth(ts_msg, 11);
+               if (temp_full_ids) {
+                       char* item = strtok(temp_full_ids, ",");
+                       int count = 0;
+                       chat_info->chat_users[count] = atoi(item);
+
+                       while (item != NULL) {
+                               count++;
+                               item = strtok(NULL, ",");
+                               if (item != NULL) {
+                                       chat_info->chat_users[count] = atoi(item);
+                               }
+                       }
+                       free(temp_full_ids);
+               }
+
+               int *temp_date = (int*)eina_list_nth(ts_msg, 12);
+               if (temp_date) {
+                       chat_info->date  = *temp_date;
+                       free(temp_date);
+               }
+
+               int *temp_version = (int*)eina_list_nth(ts_msg, 13);
+               if (temp_version) {
+                       chat_info->version  = *temp_version;
+                       free(temp_version);
+               }
+
+               int *temp_admin_id = (int*)eina_list_nth(ts_msg, 14);
+               if (temp_admin_id) {
+                       chat_info->admin_id  = *temp_admin_id;
+                       free(temp_admin_id);
+               }
+               eina_list_free(ts_msg);
+               eina_list_free(chat_details);
+       }
+       return chat_info;
+}
+
+
+Eina_List* get_registered_user_info()
+{
+       Eina_List* user_details = NULL;
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       if (db) {
+               char* table_name = USER_INFO_TABLE_NAME;
+               Eina_List* col_names = NULL;
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_USER_ID);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_PRINT_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_STRUCTURE_VERSION);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_PHOTO_PATH);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_PHOTO_ID);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_FIRST_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_LAST_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_PHONE_NO);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_ACCESS_HASH);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_REAL_FIRST_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_REAL_LAST_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_USER_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_ONLINE_STATUS);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_LAST_SEEN_TIME);
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_PRIMARY_KEY);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+               user_details = get_values_from_table_sync(db, table_name, col_names, col_types, NULL);
+
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+       }
+       return user_details;
+}
+
+Eina_List* get_buddy_list_info()
+{
+       Eina_List* user_details = NULL;
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       if (db) {
+               char* table_name = BUDDY_INFO_TABLE_NAME;
+               Eina_List* col_names = NULL;
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_BUDDY_ID);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PRINT_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_STRUCTURE_VERSION);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PHOTO_PATH);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PHOTO_ID);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_FIRST_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_LAST_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PHONE_NO);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_ACCESS_HASH);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_REAL_FIRST_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_REAL_LAST_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_BUDDY_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_ONLINE_STATUS);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_LAST_SEEN_TIME);
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_PRIMARY_KEY);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+               user_details = get_values_from_table_sync(db, table_name, col_names, col_types, NULL);
+
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+       }
+       return user_details;
+}
+
+Eina_List* get_buddy_info(int buddy_id)
+{
+       Eina_List* user_details = NULL;
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       if (db) {
+               char* table_name = BUDDY_INFO_TABLE_NAME;
+               Eina_List* col_names = NULL;
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_BUDDY_ID);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PRINT_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_STRUCTURE_VERSION);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PHOTO_PATH);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PHOTO_ID);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_FIRST_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_LAST_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PHONE_NO);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_ACCESS_HASH);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_REAL_FIRST_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_REAL_LAST_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_BUDDY_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_ONLINE_STATUS);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_LAST_SEEN_TIME);
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_PRIMARY_KEY);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+               char buddy_id_str[50];
+               sprintf(buddy_id_str, "%d", buddy_id);
+
+               char* where_clause = (char*)malloc(strlen(BUDDY_INFO_TABLE_BUDDY_ID) + strlen(" = ") + strlen(buddy_id_str) + 1);
+               strcpy(where_clause, BUDDY_INFO_TABLE_BUDDY_ID);
+               strcat(where_clause, " = ");
+               strcat(where_clause, buddy_id_str);
+
+               user_details = get_values_from_table_sync(db, table_name, col_names, col_types, where_clause);
+               free(where_clause);
+
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+       }
+       return user_details;
+}
+
+tg_message_s* get_message_from_message_table(long long msg_id, char* table_name)
+{
+       tg_message_s* message = NULL;
+
+       Eina_List* message_details = NULL;
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       if (db) {
+               Eina_List* col_names = NULL;
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MESSAGE_ID);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_FLAGS);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_FWD_FROM_ID);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_FWD_DATE);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_FROM_ID);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_TO_ID);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_OUT_MSG);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_UNREAD);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_DATE);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_SERVICE);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MESSAGE);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MESSAGE_LENGTH);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MEDIA_TYPE);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MEDIA_ID);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_UNIQUE_ID);
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+               char* where_clause = NULL;
+               char msg_id_str[50];
+               sprintf(msg_id_str,"%d",msg_id);
+               where_clause = (char*)malloc(strlen(MESSAGE_INFO_TABLE_MESSAGE_ID) + strlen(" = ") + strlen(msg_id_str) + 1);
+               strcpy(where_clause, MESSAGE_INFO_TABLE_MESSAGE_ID);
+               strcat(where_clause, " = ");
+               strcat(where_clause, msg_id_str);
+
+               message_details = get_values_from_table_sync(db, table_name, col_names, col_types, where_clause);
+
+               free(where_clause);
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+       }
+
+       if (message_details && eina_list_count(message_details) > 0) {
+               Eina_List* ts_msg = eina_list_nth(message_details, 0);
+
+               message = (tg_message_s*)malloc(sizeof(tg_message_s));
+
+
+               int *temp_msg_id = (int*)eina_list_nth(ts_msg, 0);
+               if (temp_msg_id) {
+                       message->msg_id  = *temp_msg_id;
+                       free(temp_msg_id);
+               }
+
+               int *temp_flags = (int*)eina_list_nth(ts_msg, 1);
+               if (temp_flags) {
+                       message->flags  = *temp_flags;
+                       free(temp_flags);
+               }
+
+
+               int *temp_fwd_from_id = (int*)eina_list_nth(ts_msg, 2);
+               if (temp_fwd_from_id) {
+                       message->fwd_from_id  = *temp_fwd_from_id;
+                       free(temp_fwd_from_id);
+               }
+
+
+               int *temp_fwd_date = (int*)eina_list_nth(ts_msg, 3);
+               if (temp_fwd_date) {
+                       message->fwd_date  = *temp_fwd_date;
+                       free(temp_fwd_date);
+               }
+
+
+               int *temp_from_id = (int*)eina_list_nth(ts_msg, 4);
+               if (temp_from_id) {
+                       message->from_id  = *temp_from_id;
+                       free(temp_from_id);
+               }
+
+               int *temp_to_id = (int*)eina_list_nth(ts_msg, 5);
+               if (temp_to_id) {
+                       message->to_id  = *temp_to_id;
+                       free(temp_to_id);
+               }
+
+               int *temp_out = (int*)eina_list_nth(ts_msg, 6);
+               if (temp_out) {
+                       message->out  = *temp_out;
+                       free(temp_out);
+               }
+
+               int *temp_unread = (int*)eina_list_nth(ts_msg, 7);
+               if (temp_unread) {
+                       message->unread  = *temp_unread;
+                       free(temp_unread);
+               }
+
+               int *temp_date = (int*)eina_list_nth(ts_msg, 8);
+               if (temp_date) {
+                       message->date  = *temp_date;
+                       free(temp_date);
+               }
+
+               int *temp_service = (int*)eina_list_nth(ts_msg, 9);
+               if (temp_service) {
+                       message->service  = *temp_service;
+                       free(temp_service);
+               }
+
+               char *temp_msg = (char*)eina_list_nth(ts_msg, 10);
+               if (temp_msg) {
+                       message->message  = strdup(temp_msg);
+                       free(temp_msg);
+               }
+
+               int *temp_message_len = (int*)eina_list_nth(ts_msg, 11);
+               if (temp_message_len) {
+                       message->message_len  = *temp_message_len;
+                       free(temp_message_len);
+               }
+
+               int *temp_media_type = (int*)eina_list_nth(ts_msg, 12);
+               if (temp_media_type) {
+                       message->media_type  = *temp_media_type;
+                       free(temp_media_type);
+               }
+
+               char *temp_media_id = (char*)eina_list_nth(ts_msg, 13);
+               if (temp_media_id) {
+                       message->media_id  = strdup(temp_media_id);
+                       free(temp_media_id);
+               }
+
+               int *temp_unique_id = (int*)eina_list_nth(ts_msg, 14);
+               if (temp_unique_id) {
+                       message->unique_id  = *temp_unique_id;
+                       free(temp_unique_id);
+               }
+       }
+       return message;
+}
+
+
+char* get_image_path_from_db(long long media_id)
+{
+       char* file_path = NULL;
+
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       if (db) {
+               char* table_name = MEDIA_INFO_TABLE_NAME;
+
+               char usr_str[50];
+               sprintf(usr_str,"%lld",media_id);
+               char* where_clause = (char*)malloc(strlen(MEDIA_INFO_TABLE_MEDIA_ID) + strlen(" = '") + strlen(usr_str) + strlen("'") + 1);
+               strcpy(where_clause, MEDIA_INFO_TABLE_MEDIA_ID);
+               strcat(where_clause, " = '");
+               strcat(where_clause, usr_str);
+               strcat(where_clause, "'");
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+               Eina_List* col_names = NULL;
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_FILE_PATH);
+
+               Eina_List* vals = get_values_from_table_sync(db, table_name, col_names, col_types, where_clause);
+               close_database(db);
+
+               file_path = NULL;
+
+               if (!vals) {
+                       //("DB error");
+                       eina_list_free(col_names);
+                       return NULL;
+               } else {
+                       int row_count = eina_list_count(vals);
+
+                       for (int i = 0 ; i < row_count ; i++) {
+                               Eina_List* row_vals = eina_list_nth(vals, i);
+                               file_path = (char*)eina_list_nth(row_vals, 0);
+                               if (!file_path) {
+                                       //("DB Error");
+                                       eina_list_free(col_names);
+                                       return NULL;
+                               } else {
+                                       break;
+                               }
+                               eina_list_free(row_vals);
+                       }
+                       eina_list_free(vals);
+               }
+               eina_list_free(col_names);
+       }
+
+       return file_path;
+}
+
diff --git a/TelegramTizen/src/tg_first_registration.c b/TelegramTizen/src/tg_first_registration.c
new file mode 100644 (file)
index 0000000..3c04214
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+ * tg_first_registration.c
+ *
+ *  Created on: Jul 6, 2015
+ *      Author: sandeep
+ */
+
+#include "tg_first_registration.h"
+#include "server_requests.h"
+
+static void on_submit_button_clicked(void *data, Evas_Object *btn, void *ev)
+{
+       appdata_s* ad = evas_object_data_get(btn, "app_data");
+       Evas_Object* first_name_entry = evas_object_data_get(btn, "first_name_entry");
+       Evas_Object* last_name_entry = evas_object_data_get(btn, "last_name_entry");
+
+       const char* first_name = elm_object_text_get(first_name_entry);
+       if (!first_name) {
+               show_toast(ad, "Enter first name");
+               return;
+       }
+
+       const char* last_name = elm_object_text_get(last_name_entry);
+       if (!last_name) {
+               last_name = "";
+       }
+       send_request_for_profile_registration(ad->service_client, first_name, last_name);
+}
+
+
+void launch_first_registration_cb(void *data)
+{
+       appdata_s* ad = data;
+
+       char edj_path[PATH_MAX] = {0, };
+
+       ad->current_app_state = TG_PROFILE_REGISTRATION_STATE;
+       ad->is_first_time_registration = EINA_TRUE;
+
+       Evas_Coord w, h;
+       elm_win_screen_size_get(ad->win, NULL, NULL, &w, &h);
+       h -= 130;
+
+       // creating main layout
+       Evas_Object* main_layout = elm_layout_add(ad->win);
+       app_get_resource(EDJ_CHAT_CONV_FILE, edj_path, (int)PATH_MAX);
+       elm_layout_file_set(main_layout, edj_path, "chat_first_registration");
+       evas_object_size_hint_min_set(main_layout, w, h);
+
+       Evas_Object* first_name_lbl = elm_label_add(main_layout);
+       elm_object_text_set(first_name_lbl, "Enter first name:");
+       evas_object_show(first_name_lbl);
+       elm_object_part_content_set(main_layout, "swallow.first_name_label", first_name_lbl);
+
+       Evas_Object* first_name_entry = elm_entry_add(main_layout);
+       elm_entry_single_line_set(first_name_entry, EINA_TRUE);
+       evas_object_show(first_name_entry);
+       elm_object_part_content_set(main_layout, "swallow.first_name_entry", first_name_entry);
+
+
+       Evas_Object* last_name_lbl = elm_label_add(main_layout);
+       elm_object_text_set(last_name_lbl, "Enter last name:");
+       evas_object_show(last_name_lbl);
+       elm_object_part_content_set(main_layout, "swallow.last_name_label", last_name_lbl);
+
+       Evas_Object* last_name_entry = elm_entry_add(main_layout);
+       elm_entry_single_line_set(last_name_entry, EINA_TRUE);
+       evas_object_show(last_name_entry);
+       elm_object_part_content_set(main_layout, "swallow.last_name_entry", last_name_entry);
+
+       Evas_Object* submit_btn = elm_button_add(main_layout);
+       elm_object_text_set(submit_btn, "Submit");
+       evas_object_show(submit_btn);
+
+       evas_object_data_set(submit_btn, "app_data", ad);
+       evas_object_data_set(submit_btn, "first_name_entry", first_name_entry);
+       evas_object_data_set(submit_btn, "last_name_entry", last_name_entry);
+
+       elm_object_part_content_set(main_layout, "swallow.submit_btn", submit_btn);
+
+       evas_object_smart_callback_add(submit_btn, "clicked", on_submit_button_clicked, ad);
+
+       elm_naviframe_item_push(ad->nf, "Telegram", NULL, NULL, main_layout, NULL);
+}
+
+
+
diff --git a/TelegramTizen/src/tg_login.c b/TelegramTizen/src/tg_login.c
new file mode 100644 (file)
index 0000000..a26e6d2
--- /dev/null
@@ -0,0 +1,103 @@
+/*
+ * tg_login.c
+ *
+ *  Created on: May 20, 2015
+ *      Author: sandeep
+ */
+
+#include "tg_login.h"
+#include "server_requests.h"
+
+static void _send_code_ok_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       appdata_s* ad = evas_object_data_get(obj, "app_data");
+       Evas_Object* entry = evas_object_data_get(obj, "entry_obj");
+       if(entry) {
+               char* tval = strdup(elm_object_text_get(entry));
+               char* val = trim(tval);
+               free(tval);
+               if (!val || strlen(val) <= 0 || numbers_only(val) == 0) {
+                       show_toast(ad, "Enter a valid code");
+                       free(val);
+                       return;
+               }
+               send_request_for_validation(ad->service_client, val);
+       }
+}
+
+static void _send_code_sms_login_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       // to do
+}
+
+static void _send_code_call_login_cb(void *data, Evas_Object *obj, void *event)
+{
+       // to do
+}
+
+
+void launch_login_cb(void *data)
+{
+       appdata_s* ad = data;
+
+       char edj_path[PATH_MAX] = {0, };
+
+       Evas_Coord w, h;
+       ad->current_app_state = TG_LOGIN_STATE;
+
+
+       elm_win_screen_size_get(ad->win, NULL, NULL, &w, &h);
+
+       Evas_Object* layout = elm_layout_add(ad->win);
+       app_get_resource(EDJ_LOGIN_FILE, edj_path, (int)PATH_MAX);
+
+       elm_layout_file_set(layout, edj_path, "login");
+
+       Evas_Object* box = elm_box_add(layout);
+       evas_object_size_hint_align_set(box, EVAS_HINT_FILL, 0.0);
+       evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, 0.0);
+       evas_object_size_hint_min_set(box, w, h - 200);
+
+       elm_object_part_content_set(layout, "bg", box); /* To expands layout */
+
+       elm_object_part_text_set(layout, "label", "Enter Telegram Code");
+
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, 0.0);
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, 0.0);
+
+       Evas_Object* entry = elm_entry_add(layout);
+       elm_entry_input_panel_layout_set(entry,ELM_INPUT_PANEL_LAYOUT_NUMBERONLY);
+       evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, 0);
+       evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, 0);
+       elm_object_part_content_set(layout, "entry", entry);
+
+
+       Evas_Object* ok_btn = elm_button_add(layout);
+       elm_object_text_set(ok_btn, "OK");
+       evas_object_size_hint_weight_set(ok_btn, EVAS_HINT_EXPAND, 0);
+       evas_object_size_hint_align_set(ok_btn, EVAS_HINT_FILL, 0);
+       elm_object_part_content_set(layout, "ok_btn", ok_btn);
+       evas_object_data_set(ok_btn, "app_data", ad);
+       evas_object_data_set(ok_btn, "entry_obj", entry);
+       evas_object_smart_callback_add(ok_btn, "clicked", _send_code_ok_cb, ad);
+
+       Evas_Object* sms_btn = elm_button_add(layout);
+       elm_object_text_set(sms_btn, "Request new code via SMS");
+       evas_object_size_hint_weight_set(sms_btn, EVAS_HINT_EXPAND, 0);
+       evas_object_size_hint_align_set(sms_btn, EVAS_HINT_FILL, 0);
+       elm_object_part_content_set(layout, "sms_btn", sms_btn);
+       evas_object_data_set(sms_btn, "app_data", ad);
+       evas_object_data_set(sms_btn, "entry_obj", entry);
+       evas_object_smart_callback_add(sms_btn, "clicked", _send_code_sms_login_cb, ad);
+
+       Evas_Object* call_btn = elm_button_add(layout);
+       elm_object_text_set(call_btn, "Request new code via CALL");
+       evas_object_size_hint_weight_set(call_btn, EVAS_HINT_EXPAND, 0);
+       evas_object_size_hint_align_set(call_btn, EVAS_HINT_FILL, 0);
+       elm_object_part_content_set(layout, "call_btn", call_btn);
+       evas_object_data_set(call_btn, "app_data", ad);
+       evas_object_data_set(call_btn, "entry_obj", entry);
+       evas_object_smart_callback_add(call_btn, "clicked", _send_code_call_login_cb, ad);
+
+       elm_naviframe_item_push(ad->nf, "Telegram", NULL, NULL, layout, NULL);
+}
diff --git a/TelegramTizen/src/tg_registration.c b/TelegramTizen/src/tg_registration.c
new file mode 100644 (file)
index 0000000..6e6e927
--- /dev/null
@@ -0,0 +1,88 @@
+/*
+ * tg_registration.c
+ *
+ *  Created on: May 19, 2015
+ *      Author: sandeep
+ */
+
+#include "tg_registration.h"
+#include "tg_db_manager.h"
+#include "server_requests.h"
+
+#include "device_contacts_manager.h"
+#include "contacts-db-utils.h"
+
+void _send_code_sms_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       appdata_s* ad = evas_object_data_get(obj, "app_data");
+       Evas_Object* entry = evas_object_data_get(obj, "entry_obj");
+       if(entry) {
+               char* tval = strdup(elm_object_text_get(entry));
+
+               char* val = trim(tval);
+               free(tval);
+               if(!val || strlen(val) <= 0 || numbers_only(val) == 0) {
+                       show_toast(ad, "Enter a valid phone number");
+                       free(val);
+                       return;
+               }
+               ad->phone_number = strdup(val);
+               // request service for login
+               send_request_for_registration(ad->service_client, ad->phone_number, EINA_TRUE);
+       }
+}
+
+static void _send_code_call_cb(void *data, Evas_Object *obj, void *event)
+{
+       //appdata_reg_s* ad_reg = data;
+}
+
+void launch_registration_cb(void *data)
+{
+
+       appdata_s* ad = data;
+       char edj_path[PATH_MAX] = {0, };
+
+       ad->current_app_state = TG_REGISTRATION_STATE;
+
+       Evas_Coord w, h;
+       elm_win_screen_size_get(ad->win, NULL, NULL, &w, &h);
+       Evas_Object* layout = elm_layout_add(ad->win);
+       app_get_resource(EDJ_REG_FILE, edj_path, (int)PATH_MAX);
+       elm_layout_file_set(layout, edj_path, "login");
+
+       Evas_Object* box = elm_box_add(layout);
+       evas_object_size_hint_align_set(box, EVAS_HINT_FILL, 0.0);
+       evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, 0.0);
+       evas_object_size_hint_min_set(box, w, h - 200);
+       elm_object_part_content_set(layout, "bg", box);
+       elm_object_part_text_set(layout, "label", "Enter Phone Number");
+
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, 0.0);
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, 0.0);
+
+       Evas_Object* entry = elm_entry_add(layout);
+       evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, 0);
+       evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, 0);
+       elm_entry_input_panel_layout_set(entry,ELM_INPUT_PANEL_LAYOUT_NUMBERONLY);
+       elm_object_part_content_set(layout, "entry", entry);
+
+       Evas_Object* sms_btn = elm_button_add(layout);
+       elm_object_text_set(sms_btn, "Request code via SMS");
+       evas_object_size_hint_weight_set(sms_btn, EVAS_HINT_EXPAND, 0);
+       evas_object_size_hint_align_set(sms_btn, EVAS_HINT_FILL, 0);
+       elm_object_part_content_set(layout, "sms_btn", sms_btn);
+       evas_object_data_set(sms_btn, "app_data", ad);
+       evas_object_data_set(sms_btn, "entry_obj", entry);
+       evas_object_smart_callback_add(sms_btn, "clicked", _send_code_sms_cb, ad);
+
+       Evas_Object* call_btn = elm_button_add(layout);
+       elm_object_text_set(call_btn, "Request code via CALL");
+       evas_object_size_hint_weight_set(call_btn, EVAS_HINT_EXPAND, 0);
+       evas_object_size_hint_align_set(call_btn, EVAS_HINT_FILL, 0);
+       elm_object_part_content_set(layout, "call_btn", call_btn);
+       evas_object_data_set(call_btn, "app_data", ad);
+       evas_object_data_set(call_btn, "entry_obj", entry);
+       evas_object_smart_callback_add(call_btn, "clicked", _send_code_call_cb, ad);
+       elm_naviframe_item_push(ad->nf, "Telegram", NULL, NULL, layout, NULL);
+}
diff --git a/TelegramTizen/src/tg_splash_screen.c b/TelegramTizen/src/tg_splash_screen.c
new file mode 100644 (file)
index 0000000..c2d2d35
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * tg_splash_screen.c
+ *
+ *  Created on: Jun 12, 2015
+ *      Author: sandeep
+ */
+#include "tg_splash_screen.h"
+
+void
+launch_splash_screen_cb(void *data)
+{
+       appdata_s* ad = data;
+
+       char edj_path[PATH_MAX] = {0, };
+
+       ad->current_app_state = TG_REGISTRATION_STATE;
+       Evas_Object* layout = elm_layout_add(ad->win);
+       app_get_resource(EDJ_CHAT_CONV_FILE, edj_path, (int)PATH_MAX);
+       elm_layout_file_set(layout, edj_path, "splash_screen");
+       Evas_Object* progressbar = elm_progressbar_add(layout);
+       elm_object_style_set(progressbar, "process_large");
+       evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_progressbar_pulse(progressbar, EINA_TRUE);
+       elm_object_part_content_set(layout, "swallow.splash_screen", progressbar);
+       Elm_Object_Item *item =  elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, layout, NULL);
+       elm_naviframe_item_title_enabled_set(item, EINA_FALSE, EINA_TRUE);
+
+}
diff --git a/TelegramTizen/tg_utils/tg_common.h b/TelegramTizen/tg_utils/tg_common.h
new file mode 100644 (file)
index 0000000..76dd077
--- /dev/null
@@ -0,0 +1,423 @@
+/*
+ * tg_common.h
+ *
+ *  Created on: May 19, 2015
+ *      Author: sandeep
+ */
+
+#ifndef TG_COMMON_H_
+#define TG_COMMON_H_
+
+#include <app.h>
+#include <Elementary.h>
+#include <system_settings.h>
+#include <efl_extension.h>
+#include <dlog.h>
+#include "service_client.h"
+
+#ifdef  LOG_TAG
+#undef  LOG_TAG
+#endif
+#define LOG_TAG "telegram_tizen"
+
+#if !defined(PACKAGE)
+#define PACKAGE "org.tizen.telegram_tizen"
+#endif
+
+#define EDJ_REG_FILE "edje/telegram_tizen_reg.edj"
+#define EDJ_LOGIN_FILE "edje/telegram_tizen_login.edj"
+#define EDJ_CHAT_LIST_FILE "edje/telegram_chat_list.edj"
+#define EDJ_CHAT_CONV_FILE "edje/telegram_chat_conv.edj"
+
+#define GRP_MAIN "main"
+#define DEFAULT_TELEGRAM_PATH "/opt/usr/media/telegram/"
+#define DEFAULT_TG_DATABASE_PATH "/opt/usr/media/telegram/tg_data_base.db"
+
+#define FM_ICON_PATH "images/"
+#define FM_ICON_ROBO_BUDDY       FM_ICON_PATH"robo_buddy.png"
+#define SEARCH_ICON FM_ICON_PATH"/search_icon.png"
+#define ATTACH_ICON FM_ICON_PATH"/attach_icon.png"
+#define SMILEY_ICON FM_ICON_PATH"/smiley_icon.png"
+#define SEND_ICON FM_ICON_PATH"/send_icon.png"
+#define CHAT_BG FM_ICON_PATH"/chat_bg.jpg"
+#define BLUR_BG FM_ICON_PATH"/blur_img.jpg"
+#define CAMERA_ICON FM_ICON_PATH"/camera-icon.png"
+
+#define FM_ICON_MSG_SENT       FM_ICON_PATH"bubble_sent_bg.#.png"
+#define FM_ICON_MSG_RECEIVE       FM_ICON_PATH"bubble_rec_bg.#.png"
+
+#define FM_OK_BUTTON       FM_ICON_PATH"ok_bn_press.png"
+#define FM_CANCEL_BUTTON       FM_ICON_PATH"cancel_bn_press.png"
+
+#define TELEGRAM_DEBUG_LOG(fmt, args...) LOGD(" +++ LOG : "fmt, ##args)
+
+#define retv_if (expr, val) do { \
+               if (expr) { \
+                       TELEGRAM_DEBUG_LOG("(%s) -> %s() return", #expr, __func__); \
+                       return (val); \
+               } \
+} while (0)
+
+#define SAFE_STRCMP(str1, str2)   ((str1 && str2) ? strcmp(str1, str2) : -1)
+#define SAFE_STRDUP(text)              (text == NULL ? NULL : strdup(text))    //what to use for strcpy?
+#define SAFE_STRLEN(src)       \
+               ((src != NULL)? strlen(src): 0)
+#define ELM_OBJ_PART_TEXT_SET(obj, part, text)                 elm_object_domain_translatable_part_text_set(obj, part, "telegram", text)
+
+
+#define TGL_PEER_USER 1
+#define TGL_PEER_CHAT 2
+#define TGL_PEER_GEO_CHAT 3
+#define TGL_PEER_ENCR_CHAT 4
+#define TGL_PEER_UNKNOWN 0
+
+
+typedef struct {
+       int type;
+       int id;
+} tgl_peer_id_t;
+
+typedef enum state_of_app {
+       TG_SPLASH_SCREEN_STATE,
+       TG_REGISTRATION_STATE,
+       TG_PROFILE_REGISTRATION_STATE,
+       TG_LOGIN_STATE,
+       TG_BUDDY_LIST_STATE,
+       TG_BUDDY_LIST_SELECTION_STATE,
+       TG_GROUP_CHAT_NAME_ENTRY_STATE,
+       TG_BUDDY_CHAT_STATE,
+       TG_BUDDY_CHAT_CONV_STATE
+} state_of_app_s;
+
+enum tgl_typing_status {
+       tgl_typing_none = 1,
+       tgl_typing_typing,
+       tgl_typing_cancel,
+       tgl_typing_record_video,
+       tgl_typing_upload_video,
+       tgl_typing_record_audio,
+       tgl_typing_upload_audio,
+       tgl_typing_upload_photo,
+       tgl_typing_upload_document,
+       tgl_typing_geo,
+       tgl_typing_choose_contact
+};
+
+
+
+typedef struct user_data {
+       tgl_peer_id_t user_id;
+       char* print_name;
+       int structure_version;
+       char* photo_path;
+       int photo_id;
+       char* first_name;
+       char* last_name;
+       char* phone;
+       int access_hash;
+       char* real_first_name;
+       char* real_last_name;
+       char* username;
+       int online;
+       int last_seen;
+       Eina_Bool is_selected;
+} user_data_s;
+
+typedef struct user_data_with_pic {
+       user_data_s *use_data;
+       //char* pic_file_location;
+       Evas_Object *contact_icon;
+} user_data_with_pic_s;
+
+enum tgl_message_media_type {
+       tgl_message_media_none,
+       tgl_message_media_photo,
+       //tgl_message_media_video,
+       //tgl_message_media_audio,
+       tgl_message_media_document,
+       tgl_message_media_geo,
+       tgl_message_media_contact,
+       tgl_message_media_unsupported,
+       tgl_message_media_photo_encr,
+       //tgl_message_media_video_encr,
+       //tgl_message_media_audio_encr,
+       tgl_message_media_document_encr,
+};
+
+typedef struct tg_chat_info {
+       int chat_id;
+       int flags;
+       char* print_title;
+       int struct_version;
+       long long photo_id;
+       char* photo_path;
+       char* title;
+       int users_num;
+       int user_list_size;
+       int user_list_version;
+       int inviter_id;
+       int chat_users[100];
+       int date;
+       int version;
+       int admin_id;
+} tg_chat_info_s;
+
+typedef struct tg_peer_info {
+       int peer_id;
+       int peer_type;
+       int flags;
+       long long last_msg_id;
+       int last_msg_date;
+       char* print_name;
+       int struct_version;
+       int no_of_unread_msgs;
+       int last_seen_time;
+       char* photo_path;
+       long long photo_id;
+} tg_peer_info_s;
+
+typedef struct peer_with_pic {
+       tg_peer_info_s *use_data;
+       Evas_Object *contact_icon;
+} peer_with_pic_s;
+
+typedef struct group_chat_with_pic {
+       tg_chat_info_s *use_data;
+       Evas_Object *contact_icon;
+} group_chat_with_pic_s;
+
+typedef struct tg_message {
+       int msg_id;
+       int flags;
+       int fwd_from_id;
+       int fwd_date;
+       int from_id;
+       int to_id;
+       int out;
+       int unread;
+       int date;
+       int service;
+       char* message;
+       int message_len;
+       int media_type;
+       char* media_id;
+       int unique_id;
+} tg_message_s;
+
+typedef struct appdata {
+       Evas_Object* win;
+       Evas_Object* layout;
+       Evas_Object* conform;
+       Evas_Object* nf;
+       Evas_Object* panel;
+       struct event_base *basic_event;
+       char* phone_number;
+       char* sms_code;
+       Eina_List* buddy_list;
+       Eina_List* group_chat_list;
+       Eina_List* peer_list;
+       int curtimezoneoffset;
+       int curtimeformat;
+       tgl_peer_id_t user_id;
+       state_of_app_s current_app_state;
+       user_data_s current_user_data;
+       tg_peer_info_s* buddy_in_cahtting_data;
+       Eina_Bool is_network_connected;
+       service_client* service_client;
+       Eina_Bool is_first_time_registration;
+} appdata_s;
+
+extern void show_toast(appdata_s* ad, char* value);
+extern void layout_back_cb(void *data, Evas_Object *obj, void *event_info);
+extern void tg_login_nf_back_cb(void *data, Evas_Object *obj, void *event_info);
+extern void detail_list_nf_back_cb(void *data, Evas_Object *obj, void *event_info);
+extern void load_rec_msg_to_db(struct tgl_state *TLS, struct tgl_message *M);
+extern void create_buddy_msg_table(const char* table_name);
+extern void insert_msg_into_db(struct tgl_message *M, char* table_name, int unique_id);
+extern void update_msg_into_db(struct tgl_message *M, char* table_name, int unique_id);
+extern void insert_photo_info_to_db(struct tgl_message *M, char* file_path);
+extern void update_photo_info_in_db(struct tgl_message *M, char* file_path, int unique_val);
+extern void load_buddy_list_data(appdata_s *ad);
+extern void load_group_chat_data(appdata_s *ad);
+extern void load_peer_data(appdata_s *ad);
+
+#if 0
+static char *trim(char *s) {
+    char *ptr;
+    if (!s)
+        return NULL;   // handle NULL string
+    if (!*s)
+        return s;      // handle empty string
+    for (ptr = s + strlen(s) - 1; (ptr >= s) && isspace(*ptr); --ptr);
+    ptr[1] = '\0';
+    return s;
+}
+#endif
+
+static char*  trim(char * s)
+{
+       if (!s)
+               return NULL;
+
+       int l = strlen(s);
+
+       while (isspace(s[l - 1]))
+               --l;
+       while (* s && isspace(* s))
+               ++s, --l;
+
+       return strndup(s, l);
+}
+
+static int numbers_only(const char *s)
+{
+       return 1;
+}
+
+static void app_get_resource(const char *edj_file_in, char *edj_path_out, int edj_path_max)
+{
+       char *res_path = app_get_resource_path();
+       if (res_path) {
+               snprintf(edj_path_out, edj_path_max, "%s%s", res_path, edj_file_in);
+               free(res_path);
+       }
+}
+
+static void telegram_image_mask_delete_cb(Evas_Object *obj)
+{
+       if (obj == NULL)
+               return;
+
+       void *mask = evas_object_image_data_get(obj, EINA_TRUE);
+       if (mask) {
+               free(mask);
+               mask = NULL;
+       }
+}
+
+//static char* get_table_name_from_number(const char* phone_no)
+static char* get_table_name_from_number(const int id)
+{
+       char id_str[50];
+       sprintf(id_str, "%d", id);
+       char* msg_table = (char*)malloc(strlen("tg_") + strlen(id_str) + strlen("_msg") + 1);
+       strcpy(msg_table, "tg_");
+       strcat(msg_table, id_str);
+       strcat(msg_table, "_msg");
+       return msg_table;
+}
+
+static void telegram_set_mask_and_circular_pic(Evas_Object *image, char *image_path, char *mask_path, int width, int height)
+{
+       if (image == NULL)
+               return;
+       if (image_path == NULL)
+               return;
+
+       Evas_Object *img_obj = NULL;
+       void *mask;
+       //if (image_path != NULL)
+       //mask = ea_image_effect_mask(image_path, mask_path, width, height, 0, 0);
+       img_obj = elm_image_object_get(image);
+       evas_object_image_colorspace_set(img_obj, EVAS_COLORSPACE_ARGB8888);
+       evas_object_image_size_set(img_obj, width, height);
+       evas_object_image_data_set(img_obj, mask);
+       evas_object_image_alpha_set(img_obj, EINA_TRUE);
+       evas_object_event_callback_add(img_obj, EVAS_CALLBACK_DEL, telegram_image_mask_delete_cb, NULL);
+}
+
+static Evas_Object* buddy_widget_main_icon_get(const char *icon_name, Evas_Object *parent)
+{
+    Evas_Object *icon = elm_image_add(parent);
+    elm_object_focus_set(icon, EINA_FALSE);
+    elm_image_file_set(icon, icon_name, NULL);
+    evas_object_show(icon);
+    return icon;
+}
+
+static void buddy_icon_del_cb(void *data, Evas *e, Evas_Object *icon, void *event_info)
+{
+       user_data_with_pic_s *item  = data;
+       item->contact_icon = NULL;
+}
+
+static const char *_ui_utils_get_res_path()
+{
+       char res_folder_path[PATH_MAX] = {'\0'};
+       if (res_folder_path[0] == '\0') {
+               char *res_path_buff = app_get_resource_path();
+               strncpy(res_folder_path, res_path_buff, PATH_MAX-1);
+               free(res_path_buff);
+       }
+       return res_folder_path;
+}
+
+static char *ui_utils_get_resource(const char *res_name)
+{
+       static char res_path[PATH_MAX] = {'\0'};
+       snprintf(res_path, PATH_MAX, "%s%s", _ui_utils_get_res_path(), res_name);
+       return res_path;
+}
+
+static char* get_current_time()
+{
+       Eina_Strbuf *strbuf = eina_strbuf_new();
+       time_t local_time = time(NULL);
+       char buf[200] = {0};
+       char *ret = NULL;
+       struct tm *time_info = localtime(&local_time);
+
+       strftime(buf, 200, "%l:%M", time_info);
+       eina_strbuf_append_printf(strbuf, "%s %s", buf, (time_info->tm_hour >= 12) ? "PM":"AM");
+       ret = eina_strbuf_string_steal(strbuf);
+       eina_strbuf_free(strbuf);
+       return ret;
+}
+
+typedef struct _telegram_Time
+{
+       int hours;
+       int minutes;
+       int ampm; /* 0 for AM, 1 for PM */
+       int days;
+
+} telegram_time;
+
+typedef enum {
+       telegram_TIME_FORMAT_12H = 0,
+       telegram_TIME_FORMAT_24H,
+       telegram_TIME_FORMAT_UNKNOWN
+
+} telegram_time_format;
+
+typedef struct Buddy {
+       int buddyNO;
+       char* buddyID;
+       char* name;
+       char* initialConsonant;
+       char* statusMsg;
+       char favoriteFlag;
+       char friendStatus;
+       char* profilePath;
+       char* birthday;
+       char* email;
+       int rank;
+       long updateTime;
+       char* phoneNumber;
+       char* orgNums;
+       int grade;
+       char* emailAccount;
+       char relationHideFlag;
+       char updateStatus;
+       char knownPhoneNumberFlag;
+       char phoneNumberShowFlag;
+       char whoBlindMeFlag;
+       char voipFlag;
+       char isBlindedFlag;
+       char* extraInfo ;
+       int nameInfo ;
+       char* msisdns;
+       char* smsContacts;
+} Buddy;
+
+#endif /* TG_COMMON_H_ */
diff --git a/TelegramTizen/tizen-manifest.xml b/TelegramTizen/tizen-manifest.xml
new file mode 100644 (file)
index 0000000..37e6db5
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="2.3" package="org.tizen.telegramtizen" version="1.0.0">
+    <profile name="mobile"/>
+    <ui-application appid="org.tizen.telegramtizen" exec="telegramtizen" multiple="false" nodisplay="false" taskmanage="true" type="capp">
+        <label>telegramtizen</label>
+        <icon>telegramtizen.png</icon>
+    </ui-application>
+    <privileges>
+        <privilege>http://tizen.org/privilege/location</privilege>
+        <privilege>http://tizen.org/privilege/network.get</privilege>
+        <privilege>http://tizen.org/privilege/keymanager</privilege>
+        <privilege>http://tizen.org/privilege/callhistory.read</privilege>
+        <privilege>http://tizen.org/privilege/camera</privilege>
+        <privilege>http://tizen.org/privilege/contact.write</privilege>
+        <privilege>http://tizen.org/privilege/content.write</privilege>
+        <privilege>http://tizen.org/privilege/appmanager.launch</privilege>
+        <privilege>http://tizen.org/privilege/push</privilege>
+        <privilege>http://tizen.org/privilege/account.read</privilege>
+        <privilege>http://tizen.org/privilege/display</privilege>
+        <privilege>http://tizen.org/privilege/network.profile</privilege>
+        <privilege>http://tizen.org/privilege/externalstorage</privilege>
+        <privilege>http://tizen.org/privilege/recorder</privilege>
+        <privilege>http://tizen.org/privilege/account.write</privilege>
+        <privilege>http://tizen.org/privilege/bluetooth</privilege>
+        <privilege>http://tizen.org/privilege/mediastorage</privilege>
+        <privilege>http://tizen.org/privilege/internet</privilege>
+        <privilege>http://tizen.org/privilege/notification</privilege>
+        <privilege>http://tizen.org/privilege/network.set</privilege>
+        <privilege>http://tizen.org/privilege/externalstorage.appdata</privilege>
+        <privilege>http://tizen.org/privilege/callhistory.write</privilege>
+        <privilege>http://tizen.org/privilege/contact.read</privilege>
+    </privileges>
+</manifest>
diff --git a/tg-engine-service/.cproject b/tg-engine-service/.cproject
new file mode 100644 (file)
index 0000000..7cdae3a
--- /dev/null
@@ -0,0 +1,825 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+       <storageModule moduleId="org.eclipse.cdt.core.settings">
+               <cconfiguration id="org.tizen.nativecore.config.sbi.gcc45.app.debug.1943297253">
+                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.app.debug.1943297253" moduleId="org.eclipse.cdt.core.settings" name="Debug">
+                               <externalSettings/>
+                               <extensions>
+                                       <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+                               </extensions>
+                       </storageModule>
+                       <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+                               <configuration artifactName="tg-engine-service" buildArtefactType="org.tizen.nativecore.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.app" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;" id="org.tizen.nativecore.config.sbi.gcc45.app.debug.1943297253" name="Debug" parent="org.tizen.nativecore.config.sbi.gcc45.app.debug">
+                                       <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.app.debug.1943297253." name="/" resourcePath="">
+                                               <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.app.debug.1162471505" name="Tizen Native Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.app.debug">
+                                                       <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.702610639" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+                                                       <builder autoBuildTarget="all" buildPath="${workspace_loc:/tg-engine-service}/Debug" enableAutoBuild="true" id="org.tizen.nativecore.target.sbi.gnu.builder.1488100534" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Tizen Application Builder" superClass="org.tizen.nativecore.target.sbi.gnu.builder">
+                                                               <outputEntries>
+                                                                       <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="outputPath" name="Debug"/>
+                                                                       <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="outputPath" name="Release"/>
+                                                               </outputEntries>
+                                                       </builder>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.1163374476" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
+                                                       <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.532589002" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
+                                                               <option id="gnu.cpp.compiler.option.optimization.level.263654963" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
+                                                               <option id="sbi.gnu.cpp.compiler.option.debugging.level.core.473116873" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
+                                                               <option id="sbi.gnu.cpp.compiler.option.727579598" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="mobile-2.4-device.core_llvm36.armel.core.app"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.1999052704" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SDK_PATH}/library&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-audio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-avahi-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-fb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-x-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ewebkit2-0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.938677917" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value=" -fPIE"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-mthumb"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.compiler.option.include.paths.1978545236" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/tg_engine_utils}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/db_manager}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/tg_engine}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/mtprotocol}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/mtprotocol/auto}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/mtprotocol/tl-parser}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/library"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SDK_PATH}/library&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-audio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-avahi-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-fb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-x-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ewebkit2-0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks.core.620253534" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="Native_API"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.compiler.option.preprocessor.def.1642053949" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" valueType="definedSymbols">
+                                                                       <listOptionValue builtIn="false" value="_DEBUG"/>
+                                                                       <listOptionValue builtIn="false" value="__OpenBSD__"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.621529398" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+                                                       </tool>
+                                                       <tool command="clang" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.220878886" name="C Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.c.compiler">
+                                                               <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.1212877145" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
+                                                               <option id="sbi.gnu.c.compiler.option.debugging.level.core.382770598" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" value="gnu.c.debugging.level.max" valueType="enumerated"/>
+                                                               <option id="sbi.gnu.c.compiler.option.1600118168" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="mobile-2.4-device.core_llvm36.armel.core.app"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.1087094675" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.core" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SDK_PATH}/library&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-audio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-avahi-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-fb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-x-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ewebkit2-0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.2057485938" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value=" -fPIE"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-mthumb"/>
+                                                               </option>
+                                                               <option id="gnu.c.compiler.option.include.paths.187162248" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/tg_engine_utils}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/db_manager}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/mtprotocol}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/mtprotocol/auto}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/mtprotocol/tl-parser}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/tg_engine}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/library"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SDK_PATH}/library&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-audio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-avahi-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-fb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-x-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ewebkit2-0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks.core.392684315" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.core" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="Native_API"/>
+                                                               </option>
+                                                               <option id="gnu.c.compiler.option.preprocessor.def.symbols.815019761" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
+                                                                       <listOptionValue builtIn="false" value="_DEBUG"/>
+                                                                       <listOptionValue builtIn="false" value="__OpenBSD__"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.919376836" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.997634515" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+                                                       <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.linker.1882719440" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
+                                                               <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.2036674972" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_LINKER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_LINKER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="-pie -lpthread "/>
+                                                                       <listOptionValue builtIn="false" value="-Xlinker -rpath=&quot;/home/developer/sdk_tools/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-Xlinker --version-script=&quot;${PROJ_PATH}/.exportMap&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-L&quot;${SBI_SYSROOT}/usr/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.link.option.paths.1718248047" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths"/>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.269893982" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+                                                                       <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+                                                                       <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+                                                               </inputType>
+                                                       </tool>
+                                                       <tool command="arm-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.667323528" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+                                                               <option id="gnu.both.asm.option.include.paths.679561265" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="../tg-engine-service/tg-engine-service/inc"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/libxml2"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/library"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/appcore-agent"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/appfw"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/badge"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/base"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/cairo"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/calendar-service2"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/ckm"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/contacts-svc"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/content"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/context-service"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/dali"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/dali-toolkit"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/dbus-1.0"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/device"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/dlog"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/ecore-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/ecore-audio-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/ecore-avahi-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/ecore-con-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/ecore-evas-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/ecore-fb-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/ecore-file-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/ecore-imf-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/ecore-imf-evas-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/ecore-input-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/ecore-input-evas-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/ecore-ipc-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/ecore-x-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/e_dbus-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/edje-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/eet-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/efl-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/efl-extension"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/efreet-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/eina-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/eina-1/eina"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/eio-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/eldbus-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/elementary-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/embryo-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/eo-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/eom"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/ethumb-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/ethumb-client-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/evas-1"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/ewebkit2-0"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/fontconfig"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/freetype2"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/geofence"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/gio-unix-2.0"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/glib-2.0"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/json-glib-1.0"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/location"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/maps"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/media"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/media-content"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/messaging"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/metadata-editor"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/minicontrol"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/minizip"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/network"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/notification"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/phonenumber-utils"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/sensor"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/shortcut"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/storage"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/system"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/telephony"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/ui"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/web"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/widget_service"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/widget_viewer_evas"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/include/wifi-direct"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/lib/dbus-1.0/include"/>
+                                                                       <listOptionValue builtIn="false" value="/home/sandeep/tizen-sdk-2.4/platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-emulator.core/usr/lib/glib-2.0/include"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1353951193" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativecore.tool.fnmapgen.274227237" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
+                                                       <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.1685236213" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
+                                                       <tool id="org.tizen.nativecore.tool.ast.83164383" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
+                                                       <tool id="org.tizen.nativecore.tool.ast.cpp.333284593" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.310032568" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.po.compiler.832548095" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.1810433156" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler"/>
+                                               </toolChain>
+                                       </folderInfo>
+                                       <sourceEntries>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="db_manager"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="inc"/>
+                                               <entry excluding="tl-parser" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="mtprotocol"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="res"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="shared"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="tg_engine"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="tg_engine_utils"/>
+                                       </sourceEntries>
+                               </configuration>
+                       </storageModule>
+                       <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+               </cconfiguration>
+               <cconfiguration id="org.tizen.nativecore.config.sbi.gcc45.app.release.348698248">
+                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.app.release.348698248" moduleId="org.eclipse.cdt.core.settings" name="Release">
+                               <externalSettings/>
+                               <extensions>
+                                       <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+                               </extensions>
+                       </storageModule>
+                       <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+                               <configuration artifactName="tg-engine-service" buildArtefactType="org.tizen.nativecore.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.app" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;" id="org.tizen.nativecore.config.sbi.gcc45.app.release.348698248" name="Release" parent="org.tizen.nativecore.config.sbi.gcc45.app.release">
+                                       <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.app.release.348698248." name="/" resourcePath="">
+                                               <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.app.release.278714500" name="Tizen Native Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.app.release">
+                                                       <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.426367770" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+                                                       <builder buildPath="${workspace_loc:/tg-engine-service}/Release" id="org.tizen.nativecore.target.sbi.gnu.builder.1886776634" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Tizen Application Builder" superClass="org.tizen.nativecore.target.sbi.gnu.builder"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.1227873046" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
+                                                       <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.585986873" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
+                                                               <option id="gnu.cpp.compiler.option.optimization.level.1495145324" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
+                                                               <option id="sbi.gnu.cpp.compiler.option.debugging.level.core.1574573941" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core"/>
+                                                               <option id="sbi.gnu.cpp.compiler.option.1426494053" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="mobile-2.4-emulator.core_llvm36.i386.core.app"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.607323538" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SDK_PATH}/library&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-audio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-avahi-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-fb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-x-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ewebkit2-0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.359576275" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value=" -fPIE"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.compiler.option.include.paths.200820027" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks.core.692907128" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="Native_API"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.859567317" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+                                                       </tool>
+                                                       <tool command="clang" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.271662526" name="C Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.c.compiler">
+                                                               <option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.option.optimization.level.1416132749" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
+                                                               <option id="sbi.gnu.c.compiler.option.debugging.level.core.1959180088" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core"/>
+                                                               <option id="sbi.gnu.c.compiler.option.232288970" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="mobile-2.4-emulator.core_llvm36.i386.core.app"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.1774188413" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.core" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SDK_PATH}/library&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-audio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-avahi-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-fb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-x-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ewebkit2-0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.1770749423" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value=" -fPIE"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </option>
+                                                               <option id="gnu.c.compiler.option.include.paths.1589994077" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks.core.941252906" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.core" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="Native_API"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.191707940" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.1919383015" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+                                                       <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.linker.416264698" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
+                                                               <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.612394326" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_LINKER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_LINKER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="-pie -lpthread "/>
+                                                                       <listOptionValue builtIn="false" value="-Xlinker -rpath=&quot;/home/developer/sdk_tools/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-Xlinker --version-script=&quot;${PROJ_PATH}/.exportMap&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-L&quot;${SBI_SYSROOT}/usr/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.link.option.paths.116507074" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib}&quot;"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1447493616" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+                                                                       <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+                                                                       <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+                                                               </inputType>
+                                                       </tool>
+                                                       <tool command="i386-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.1324340577" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+                                                               <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1792241941" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativecore.tool.fnmapgen.1968653259" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
+                                                       <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.150465179" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
+                                                       <tool id="org.tizen.nativecore.tool.ast.1840261370" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
+                                                       <tool id="org.tizen.nativecore.tool.ast.cpp.254194617" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.1415496787" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.po.compiler.2106241523" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.1911953240" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler"/>
+                                               </toolChain>
+                                       </folderInfo>
+                                       <sourceEntries>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="db_manager"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="inc"/>
+                                               <entry excluding="tl-parser|auto" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="mtprotocol"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="mtprotocol/auto"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="mtprotocol/tl-parser"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="res"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="shared"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="tg_engine"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="tg_engine_utils"/>
+                                       </sourceEntries>
+                               </configuration>
+                       </storageModule>
+                       <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+               </cconfiguration>
+       </storageModule>
+       <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+               <project id="tg-engine-service.org.tizen.nativecore.target.sbi.gcc45.app.909329695" name="Tizen Native Application" projectType="org.tizen.nativecore.target.sbi.gcc45.app"/>
+       </storageModule>
+       <storageModule moduleId="scannerConfiguration">
+               <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+               <scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.app.debug.1943297253">
+                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+               </scannerConfigBuildInfo>
+               <scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.app.release.348698248">
+                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+               </scannerConfigBuildInfo>
+       </storageModule>
+       <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
+       <storageModule moduleId="refreshScope" versionNumber="2">
+               <configuration configurationName="Release">
+                       <resource resourceType="PROJECT" workspacePath="/tg-engine-service"/>
+               </configuration>
+               <configuration configurationName="Debug">
+                       <resource resourceType="PROJECT" workspacePath="/tg-engine-service"/>
+               </configuration>
+       </storageModule>
+       <storageModule moduleId="com.samsung.tizen.nativeapp.projectInfo" version="1.0.0"/>
+</cproject>
diff --git a/tg-engine-service/.exportMap b/tg-engine-service/.exportMap
new file mode 100644 (file)
index 0000000..43e310e
--- /dev/null
@@ -0,0 +1,4 @@
+{
+       global: main;
+       local: *;
+};
diff --git a/tg-engine-service/.package-stamp b/tg-engine-service/.package-stamp
new file mode 100644 (file)
index 0000000..40cbe59
--- /dev/null
@@ -0,0 +1 @@
+TPK
\ No newline at end of file
diff --git a/tg-engine-service/.project b/tg-engine-service/.project
new file mode 100644 (file)
index 0000000..7e091f9
--- /dev/null
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>tg-engine-service</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+                       <triggers>full,incremental,</triggers>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.tizen.nativecore.apichecker.core.builder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.cdt.core.cnature</nature>
+               <nature>org.eclipse.cdt.core.ccnature</nature>
+               <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+               <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+               <nature>org.tizen.nativecore.apichecker.core.tizenCppNature</nature>
+       </natures>
+       <filteredResources>
+               <filter>
+                       <id>1435635019418</id>
+                       <name></name>
+                       <type>26</type>
+                       <matcher>
+                               <id>org.eclipse.ui.ide.multiFilter</id>
+                               <arguments>1.0-projectRelativePath-matches-false-false-*/.tpk</arguments>
+                       </matcher>
+               </filter>
+       </filteredResources>
+</projectDescription>
diff --git a/tg-engine-service/.rds_delta b/tg-engine-service/.rds_delta
new file mode 100644 (file)
index 0000000..17afd9f
--- /dev/null
@@ -0,0 +1,6 @@
+#delete
+#add
+#modify
+author-signature.xml
+signature1.xml
+bin/tg-engine-service
diff --git a/tg-engine-service/.sdk_delta.info b/tg-engine-service/.sdk_delta.info
new file mode 100644 (file)
index 0000000..e16048c
Binary files /dev/null and b/tg-engine-service/.sdk_delta.info differ
diff --git a/tg-engine-service/.sign/.manifest.tmp b/tg-engine-service/.sign/.manifest.tmp
new file mode 100644 (file)
index 0000000..dac93a0
--- /dev/null
@@ -0,0 +1,5 @@
+res/server.pub__DEL__oB5Mdt4GNxd2Pa0EtvuSNKMaVPrPjK+bcIEREfsYwks=
+shared/res/tg-engine-service.png__DEL__1d0oEZHqPn+QzNzGIHwj9ODby6x9ggFs9uOsav6jPNs=
+tizen-manifest.xml__DEL__XoGALTCoKMv734YkvR8vJp4JxYiKMVIm0YE6VjbNrDs=
+author-signature.xml__DEL__Joih8LizrO7+zH8hubd74qi2KrB47/wQEBq2NJ763bg=
+bin/tg-engine-service__DEL__roR2dm96yiORAA33sUqVUZbifCquvCy/w5WcrSNa+9k=
diff --git a/tg-engine-service/.sign/author-signature.xml b/tg-engine-service/.sign/author-signature.xml
new file mode 100644 (file)
index 0000000..34131e4
--- /dev/null
@@ -0,0 +1,70 @@
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="AuthorSignature">
+<SignedInfo>
+<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></CanonicalizationMethod>
+<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"></SignatureMethod>
+<Reference URI="bin%2Ftg-engine-service">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>roR2dm96yiORAA33sUqVUZbifCquvCy/w5WcrSNa+9k=</DigestValue>
+</Reference>
+<Reference URI="res%2Fserver.pub">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>oB5Mdt4GNxd2Pa0EtvuSNKMaVPrPjK+bcIEREfsYwks=</DigestValue>
+</Reference>
+<Reference URI="shared%2Fres%2Ftg-engine-service.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>1d0oEZHqPn+QzNzGIHwj9ODby6x9ggFs9uOsav6jPNs=</DigestValue>
+</Reference>
+<Reference URI="tizen-manifest.xml">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>XoGALTCoKMv734YkvR8vJp4JxYiKMVIm0YE6VjbNrDs=</DigestValue>
+</Reference>
+<Reference URI="#prop">
+<Transforms>
+<Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11"></Transform>
+</Transforms>
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>lpo8tUDs054eLlBQXiDPVDVKfw30ZZdtkRs1jd7H5K8=</DigestValue>
+</Reference>
+</SignedInfo>
+<SignatureValue>
+PWQ8OHlStsthUQb3BFwPtLb+ZR1CB0pqeURs3mNMdWe30p7FUzqGvXgAyjb6G92ABD5fr0W6QpXU
+shy5DqgfdJ1OlJqaRS6b34KQA16S7rhetOwCvT8YqgtEeEWts7N3mA6X2MpoHPH922ezq4KgIXma
+a7ARB0IJpnFvOeT2SXw=
+</SignatureValue>
+<KeyInfo>
+<X509Data>
+<X509Certificate>
+MIIClTCCAX2gAwIBAgIGAU5CPYZKMA0GCSqGSIb3DQEBBQUAMFYxGjAYBgNVBAoMEVRpemVuIEFz
+c29jaWF0aW9uMRowGAYDVQQLDBFUaXplbiBBc3NvY2lhdGlvbjEcMBoGA1UEAwwTVGl6ZW4gRGV2
+ZWxvcGVycyBDQTAeFw0xMjExMDEwMDAwMDBaFw0xOTAxMDEwMDAwMDBaMBExDzANBgNVBAMMBmF1
+dGhvcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApnBgmVV6uzCLUESPlVWB2Tr3ssWHM5Y/
+f9Rd2IiQQHloJnWUv7yVlWKfGmtbMVz7veHagh64VfJZ4tAFKvU0e9J8htiZxjmNUBvad8RlLo2P
+Rx//ww/gJHwA15KDNwi6+YaTHDBD6rP9bQ428aDKvGjPFLH8nL6zH5OEOnTjBFMCAwEAAaMyMDAw
+DAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwDQYJKoZIhvcN
+AQEFBQADggEBAKwzEFDdQc43m1oD8iJXsun5VHokjXmRyTJr6Vo5qPHQuhi552ugeWSyERc6E6nU
+KZYHq7+T49OeiXsWvrRrwc2Kx5Mq5vnAqx1oCyaL1bD1Tj0ZWNAKKvGpnLD2zV2E+JA/3a38g6bn
+ndp7PivnD/+PsIyAY9QPwh7f8Yguo6yaQOkUT/SBl8qu2aSicweFFM8Xj5g/7+TNZFMWXDBW/gED
+jd4Gw+Jef1ME5FCRIdE+4HY4dONh2iJaVYSCuzrSPPYdnXKvqn4AXGu2bZTEUH5SWywNr4A7IDQu
+2INDRobTjUczlAv5tI0EO+LydVcl3qRrMkmuqIOaPdKHbk5XRIA=
+</X509Certificate>
+<X509Certificate>
+MIIDOTCCAiGgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMRowGAYDVQQKDBFUaXplbiBBc3NvY2lh
+dGlvbjEaMBgGA1UECwwRVGl6ZW4gQXNzb2NpYXRpb24xHjAcBgNVBAMMFVRpemVuIERldmVsb3Bl
+cnMgUm9vdDAeFw0xMjAxMDEwMDAwMDBaFw0yNzAxMDEwMDAwMDBaMFYxGjAYBgNVBAoMEVRpemVu
+IEFzc29jaWF0aW9uMRowGAYDVQQLDBFUaXplbiBBc3NvY2lhdGlvbjEcMBoGA1UEAwwTVGl6ZW4g
+RGV2ZWxvcGVycyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANVGhRGmMIUyBA7o
+PCz8Sxut6z6HNkF4oDIuzuKaMzRYPeWodwe9O0gmqAkToQHfwg2giRhE5GoPld0fq+OYMMwSasCu
+g8dwODx1eDeSYVuOLWRxpAmbTXOsSFi6VoWeyaPEm18JBHvZBsU5YQtgZ6Kp7MqzvQg3pXOxtajj
+vyHxiatJl+xXrHgcXC1wgyG3buty7u/Fi2mvKXJ0PRJcCjjK81dqe/Vr20sRUCrbk02zbm5ggFt/
+jIEhV8wbFRQpliobc7J4dSTKhFfrqGM8rdd54LYhD7gSI1CFSe16pUXfcVR7FhJztRaiGLnCrwBE
+dyTZ248+D4L/qR/D0axb3jcCAwEAAaMQMA4wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOC
+AQEAnOXXQ/1O/QTDHyrmQDtFziqPY3xWlJBqJtEqXiT7Y+Ljpe66e+Ee/OjQMlZe8gu21/8cKklH
+95RxjopMWCVedXDUbWdvS2+CdyvVW/quT2E0tjqIzXDekUTYwwhlPWlGxvfj3VsxqSFq3p8Brl04
+1Gx5RKAGyKVsMfTLhbbwSWwApuBUxYfcNpKwLWGPXkysu+HctY03OKv4/xKBnVWiN8ex/Sgesi0M
++OBAOMdZMPK32uJBTeKFx1xZgTLIhk45V0hPOomPjZloiv0LSS11eyd451ufjW0iHRE7WlpR6EvI
+W6TFyZgMpQq+kg4hWl2SBTf3s2VI8Ygz7gj8TMlClg==
+</X509Certificate>
+</X509Data>
+</KeyInfo>
+<Object Id="prop"><SignatureProperties xmlns:dsp="http://www.w3.org/2009/xmldsig-properties"><SignatureProperty Id="profile" Target="#AuthorSignature"><dsp:Profile URI="http://www.w3.org/ns/widgets-digsig#profile"></dsp:Profile></SignatureProperty><SignatureProperty Id="role" Target="#AuthorSignature"><dsp:Role URI="http://www.w3.org/ns/widgets-digsig#role-author"></dsp:Role></SignatureProperty><SignatureProperty Id="identifier" Target="#AuthorSignature"><dsp:Identifier></dsp:Identifier></SignatureProperty></SignatureProperties></Object>
+</Signature>
\ No newline at end of file
diff --git a/tg-engine-service/.sign/signature1.xml b/tg-engine-service/.sign/signature1.xml
new file mode 100644 (file)
index 0000000..615fe61
--- /dev/null
@@ -0,0 +1,72 @@
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="DistributorSignature">
+<SignedInfo>
+<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></CanonicalizationMethod>
+<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"></SignatureMethod>
+<Reference URI="author-signature.xml">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>Joih8LizrO7+zH8hubd74qi2KrB47/wQEBq2NJ763bg=</DigestValue>
+</Reference>
+<Reference URI="bin%2Ftg-engine-service">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>roR2dm96yiORAA33sUqVUZbifCquvCy/w5WcrSNa+9k=</DigestValue>
+</Reference>
+<Reference URI="res%2Fserver.pub">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>oB5Mdt4GNxd2Pa0EtvuSNKMaVPrPjK+bcIEREfsYwks=</DigestValue>
+</Reference>
+<Reference URI="shared%2Fres%2Ftg-engine-service.png">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>1d0oEZHqPn+QzNzGIHwj9ODby6x9ggFs9uOsav6jPNs=</DigestValue>
+</Reference>
+<Reference URI="tizen-manifest.xml">
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>XoGALTCoKMv734YkvR8vJp4JxYiKMVIm0YE6VjbNrDs=</DigestValue>
+</Reference>
+<Reference URI="#prop">
+<Transforms>
+<Transform Algorithm="http://www.w3.org/2006/12/xml-c14n11"></Transform>
+</Transforms>
+<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
+<DigestValue>u/jU3U4Zm5ihTMSjKGlGYbWzDfRkGphPPHx3gJIYEJ4=</DigestValue>
+</Reference>
+</SignedInfo>
+<SignatureValue>
+dSLEQ3/sBiTO9BSfs2Gcqs4Xa1pylVLkYZsGU1adRFJNxW8e6NfIsFzntwNbVv5DOGDa57qiH39z
+tdEOhlqejE0hwH2ERCvbvSH6+eL2lAAmtunBppeL8qYHLQ4wX2hz9alMbfoKR3GKzIqwXR18016U
+0UM+n8kTETpWCzHHfaU=
+</SignatureValue>
+<KeyInfo>
+<X509Data>
+<X509Certificate>
+MIICnTCCAgYCCQDE9MbMmJ/yCzANBgkqhkiG9w0BAQUFADCBkDELMAkGA1UEBhMCS1IxDjAMBgNV
+BAgMBVN1d29uMQ4wDAYDVQQHDAVTdXdvbjEWMBQGA1UECgwNVGl6ZW4gVGVzdCBDQTEiMCAGA1UE
+CwwZVGl6ZW4gRGlzdHJpYnV0b3IgVGVzdCBDQTElMCMGA1UEAwwcVGl6ZW4gUGFydG5lciBEaXN0
+cmlidXRvciBDQTAeFw0xMjEwMjcwNzQ4MzNaFw0yMjEwMjUwNzQ4MzNaMIGUMQswCQYDVQQGEwJL
+UjEOMAwGA1UECAwFU3V3b24xDjAMBgNVBAcMBVN1d29uMRYwFAYDVQQKDA1UaXplbiBUZXN0IENB
+MSIwIAYDVQQLDBlUaXplbiBEaXN0cmlidXRvciBUZXN0IENBMSkwJwYDVQQDDCBUaXplbiBQYXJ0
+bmVyIERpc3RyaWJ1dG9yIFNpZ25lcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAy9mg2x4B
+zxlK3LJL81GsLq/pJfK1evdCKG/IOBpdoRO0rLhYnsL5+KvToPFa5g9GTZo32LikpW1NZ7++3EHE
+fnO2IGLUau4kquvhmz1LNg5xBTx7IbucmwLMRGo1BPGdsAQQLyXeQKJ5PCERmVg4MIoiL2zT/JsL
+sZ9UPT6GEB8CAwEAATANBgkqhkiG9w0BAQUFAAOBgQAw5xPBFR1XKuZ8QpsCtSE0zXVHvwIa+Ha4
+YBdRtGwEoZmiKGZV/wAhPRdmR0kISkTz20kIGz/ZwRZCVGhsr5hkkpFknYlKeKkEJ/tJfZl4D7ec
+GFAnynOzlWZqSIPz+yxX8ah9E6lTv4Vs9DhNb08nxVvxLqlpyVdk9RUsCx/yIA==
+</X509Certificate>
+<X509Certificate>
+MIICtTCCAh6gAwIBAgIJAKORBcIiXygIMA0GCSqGSIb3DQEBBQUAMIGVMQswCQYDVQQGEwJLUjEO
+MAwGA1UECAwFU3V3b24xDjAMBgNVBAcMBVN1d29uMRYwFAYDVQQKDA1UaXplbiBUZXN0IENBMSIw
+IAYDVQQLDBlUaXplbiBEaXN0cmlidXRvciBUZXN0IENBMSowKAYDVQQDDCFUaXplbiBQYXJ0bmVy
+IERpc3RyaWJ1dG9yIFJvb3QgQ0EwHhcNMTIxMDI3MDc0NTIwWhcNMjIxMDI1MDc0NTIwWjCBkDEL
+MAkGA1UEBhMCS1IxDjAMBgNVBAgMBVN1d29uMQ4wDAYDVQQHDAVTdXdvbjEWMBQGA1UECgwNVGl6
+ZW4gVGVzdCBDQTEiMCAGA1UECwwZVGl6ZW4gRGlzdHJpYnV0b3IgVGVzdCBDQTElMCMGA1UEAwwc
+VGl6ZW4gUGFydG5lciBEaXN0cmlidXRvciBDQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
+2ZQrdEowjqxUmB8FX8ej19VKY6jGHKNIRE5wrhBkuZ1b0FLRPiN3/Cl9wMkCnyJui4QhC28g1aBg
+w/JnaObcDqW1NgFVH3006+gZvCTDlw1nIEjvZa6P+uWOOi05xPPAE0feKPkO1POnOjnapfkkEVNU
+8TXsLbLYBylWT8rxZC8CAwEAAaMQMA4wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQBJ
+yJ7p6qs0JI+1iKOk/sYWVP6dMueY72qOc/wVj5c3ejOlgJNNXDMAQ14QcRRexffc68ipTwybU/3m
+tcNwydzKJe+GFa4b2zyKOvOgrfs4MKSR0T9XEPmTKeR+NDT2CbA6/kQoRYm0fSORzD2UXJzNZWe/
+WjwSA66hv4q+0QZQFQ==
+</X509Certificate>
+</X509Data>
+</KeyInfo>
+<Object Id="prop"><SignatureProperties xmlns:dsp="http://www.w3.org/2009/xmldsig-properties"><SignatureProperty Id="profile" Target="#DistributorSignature"><dsp:Profile URI="http://www.w3.org/ns/widgets-digsig#profile"></dsp:Profile></SignatureProperty><SignatureProperty Id="role" Target="#DistributorSignature"><dsp:Role URI="http://www.w3.org/ns/widgets-digsig#role-distributor"></dsp:Role></SignatureProperty><SignatureProperty Id="identifier" Target="#DistributorSignature"><dsp:Identifier></dsp:Identifier></SignatureProperty></SignatureProperties></Object>
+</Signature>
\ No newline at end of file
diff --git a/tg-engine-service/.tproject b/tg-engine-service/.tproject
new file mode 100644 (file)
index 0000000..801d1ed
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<tproject xmlns="http://www.tizen.org/tproject">
+    <platforms>
+        <platform>
+            <name>mobile-2.4</name>
+        </platform>
+    </platforms>
+    <package>
+        <blacklist/>
+    </package>
+</tproject>
diff --git a/tg-engine-service/Debug/.gdbcommand b/tg-engine-service/Debug/.gdbcommand
new file mode 100644 (file)
index 0000000..ec5d577
--- /dev/null
@@ -0,0 +1,4 @@
+set sysroot /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core
+set debug-file-directory /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/debug
+set solib-search-path /home/sandeep/workspace_2_4/tg-engine-service/Debug
+dir /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/src/debug
\ No newline at end of file
diff --git a/tg-engine-service/Debug/.gdbinit b/tg-engine-service/Debug/.gdbinit
new file mode 100644 (file)
index 0000000..a0cae5f
--- /dev/null
@@ -0,0 +1,8 @@
+python
+import sys
+sys.path.insert(0, "/home/sandeep/tizen-sdk-2.4/tools/python")
+from libstdcxx.v6.printers import register_libstdcxx_printers
+register_libstdcxx_printers (None)
+from osp.printers import register_osp_printers
+register_osp_printers (None)
+end
diff --git a/tg-engine-service/Debug/.ninja_deps b/tg-engine-service/Debug/.ninja_deps
new file mode 100644 (file)
index 0000000..6439937
Binary files /dev/null and b/tg-engine-service/Debug/.ninja_deps differ
diff --git a/tg-engine-service/Debug/.ninja_log b/tg-engine-service/Debug/.ninja_log
new file mode 100644 (file)
index 0000000..ab626a4
--- /dev/null
@@ -0,0 +1,63 @@
+# ninja log v5
+1      797     0       mtprotocol/binlog.o     40b11edb5c659f67
+1      1169    0       src/server_response.o   75b311b1bc10c019
+792    997     0       mtprotocol/tgl.o        cbad77321dbdd13c
+312    1177    0       mtprotocol/tgl-timers.o 82c40a44b14a4e88
+2      1423    0       src/tg_db_wrapper.o     54c7d3d17f36d86c
+119    860     0       mtprotocol/structures.o f2ea167341af814e
+1      1344    0       tg_engine/tg_engine.o   42a2da7ce2f3d6b4
+797    929     0       mtprotocol/tools.o      481acd3b5f22639f
+1      1098    0       src/tg-engine-service.o 7fedf29c8a26bd6a
+152    297     0       mtprotocol/tg-mime-types.o      397bbafe9f60f443
+2      98      0       mtprotocol/mtproto-utils.o      fffa4b0b49f57f2f
+2      119     0       mtprotocol/mime-types.o bb401350b73e87dc
+997    1725    0       db_manager/tg_db_manager.o      8ee4644fd3093eee
+2      152     0       src/tg_server.o b1ae8de90f5efaf6
+98     1054    0       mtprotocol/queries.o    bcd1c169a4b05196
+2      312     0       mtprotocol/mtproto-common.o     b0399c28ac7a30d6
+297    1085    0       mtprotocol/tgl-net.o    69e872d03b9d3b1b
+0      5       0       clean   d59b6dac04fa9b5d
+22     1811    0       tg-engine-service       f96b5448b97cc209
+2      792     0       mtprotocol/mtproto-client.o     94105b23d932fbd
+2      13675   0       mtprotocol/auto/auto.o  32c8547a6aec986f
+860    1261    0       mtprotocol/updates.o    6aed41ca01591f53
+64     2580    0       tg_engine/tg_engine.o   42a2da7ce2f3d6b4
+2      586     0       src/tg_db_wrapper.o     54c7d3d17f36d86c
+587    2218    0       tg-engine-service       f96b5448b97cc209
+2      615     0       src/tg_db_wrapper.o     54c7d3d17f36d86c
+615    1423    0       tg-engine-service       f96b5448b97cc209
+2      815     0       src/tg-engine-service.o 7fedf29c8a26bd6a
+2      849     0       src/server_response.o   75b311b1bc10c019
+3      927     0       src/tg_db_wrapper.o     54c7d3d17f36d86c
+1      570     0       tg_engine/tg_engine.o   42a2da7ce2f3d6b4
+570    1332    0       tg-engine-service       f96b5448b97cc209
+1      794     0       tg-engine-service       f96b5448b97cc209
+2      567     0       tg_engine/tg_engine.o   42a2da7ce2f3d6b4
+568    1319    0       tg-engine-service       f96b5448b97cc209
+2      559     0       tg_engine/tg_engine.o   42a2da7ce2f3d6b4
+559    1294    0       tg-engine-service       f96b5448b97cc209
+1      553     0       tg_engine/tg_engine.o   42a2da7ce2f3d6b4
+553    1300    0       tg-engine-service       f96b5448b97cc209
+1      568     0       tg_engine/tg_engine.o   42a2da7ce2f3d6b4
+568    1320    0       tg-engine-service       f96b5448b97cc209
+1      568     0       tg_engine/tg_engine.o   42a2da7ce2f3d6b4
+568    1310    0       tg-engine-service       f96b5448b97cc209
+3      182     0       mtprotocol/mtproto-utils.o      fffa4b0b49f57f2f
+2      291     0       mtprotocol/mtproto-common.o     b0399c28ac7a30d6
+2      707     0       mtprotocol/mtproto-client.o     94105b23d932fbd
+3      790     0       mtprotocol/structures.o f2ea167341af814e
+707    861     0       mtprotocol/tgl.o        cbad77321dbdd13c
+182    923     0       mtprotocol/tgl-net.o    69e872d03b9d3b1b
+2      989     0       mtprotocol/binlog.o     40b11edb5c659f67
+790    989     0       mtprotocol/tools.o      481acd3b5f22639f
+291    1117    0       mtprotocol/tgl-timers.o 82c40a44b14a4e88
+2      1138    0       src/tg-engine-service.o 7fedf29c8a26bd6a
+2      1265    0       src/server_response.o   75b311b1bc10c019
+3      1304    0       mtprotocol/queries.o    bcd1c169a4b05196
+2      1332    0       src/tg_db_wrapper.o     54c7d3d17f36d86c
+2      265     0       mtprotocol/updates.o    6aed41ca01591f53
+2      591     0       tg_engine/tg_engine.o   42a2da7ce2f3d6b4
+2      13561   0       mtprotocol/auto/auto.o  32c8547a6aec986f
+13561  15013   0       tg-engine-service       f96b5448b97cc209
+1      568     0       tg_engine/tg_engine.o   42a2da7ce2f3d6b4
+569    1319    0       tg-engine-service       f96b5448b97cc209
diff --git a/tg-engine-service/Debug/build.ninja b/tg-engine-service/Debug/build.ninja
new file mode 100644 (file)
index 0000000..33ba313
--- /dev/null
@@ -0,0 +1,29 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+ninja_required_version = 1.5
+include rules.ninja
+include target.ninja
+
+shell = 
+builddir = /home/sandeep/workspace_2_4/tg-engine-service/Debug
+sareportdir = /home/sandeep/workspace_2_4/tg-engine-service/SA_Report
+sa_checkers = alpha.cplusplus.NewDeleteLeaks,alpha.unix.cstring,alpha.security.ArrayBoundV2,resourceLeak,core,unix
+
+subninja ../Debug/tg_engine/build.ninja
+subninja ../Debug/src/build.ninja
+subninja ../Debug/mtprotocol/build.ninja
+subninja ../Debug/mtprotocol/auto/build.ninja
+subninja ../Debug/db_manager/build.ninja
+
+
+targettool = clang++
+targetflags =  -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Xlinker --as-needed -pie -lpthread -Xlinker -rpath="/home/developer/sdk_tools/lib" --sysroot="/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core" -Xlinker --version-script="/home/sandeep/workspace_2_4/tg-engine-service/.exportMap" -L"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib" -lBrokenLocale -laccounts-svc -lanl -lappcore-agent -lbadge -lbase-utils-i18n -lbundle -lcairo -lcalendar-service2 -lcapi-appfw-alarm -lcapi-appfw-app-common -lcapi-appfw-app-control -lcapi-appfw-application -lcapi-appfw-app-manager -lcapi-appfw-event -lcapi-appfw-package-manager -lcapi-appfw-preference -lcapi-appfw-widget-application -lcapi-base-common -lcapi-content-media-content -lcapi-content-mime-type -lcapi-data-control -lcapi-geofence-manager -lcapi-location-manager -lcapi-maps-service -lcapi-media-audio-io -lcapi-media-camera -lcapi-media-codec -lcapi-media-controller -lcapi-media-image-util -lcapi-media-metadata-editor -lcapi-media-metadata-extractor -lcapi-media-player -lcapi-media-radio -lcapi-media-recorder -lcapi-media-screen-mirroring -lcapi-media-sound-manager -lcapi-media-thumbnail-util -lcapi-media-tone-player -lcapi-media-tool -lcapi-media-video-util -lcapi-media-vision -lcapi-media-wav-player -lcapi-message-port -lcapi-messaging-email -lcapi-messaging-messages -lcapi-network-bluetooth -lcapi-network-connection -lcapi-network-nfc -lcapi-network-smartcard -lcapi-network-wifi -lcapi-system-device -lcapi-system-info -lcapi-system-media-key -lcapi-system-runtime-info -lcapi-system-sensor -lcapi-system-system-settings -lcapi-telephony -lcapi-ui-efl-util -lcapi-ui-inputmethod-manager -lcapi-ui-inputmethod -lcapi-web-url-download -lcidn -lcontacts-service2 -lcontext -lcore-context-manager -lcore-sync-client -lcrypto -lcrypt -lc -lcurl -ldali-adaptor -ldali-core -ldali-toolkit -ldlog -ldl -lebluez -leconnman0_7x -lecore_audio -lecore_avahi -lecore_con -lecore_evas -lecore_fb -lecore_file -lecore_imf_evas -lecore_imf -lecore_input_evas -lecore_input -lecore_ipc -lecore -lecore_x -ledbus -ledje -leet -lefl-extension -lefreet_mime -lefreet -lefreet_trash -lehal -leina -leio -lelementary -lembryo -lenotify -leofono -leom -lethumb_client -lethumb -leukit -levas -lewebkit2 -lexif -lfontconfig -lfreetype -lgio-2.0 -lglib-2.0 -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -ljson-glib-1.0 -lkey-manager-client -lminicontrol-provider -lminicontrol-viewer -lminizip -lm -lnotification -lnsl -lnss_compat -lnss_dns -lnss_files -lnss_hesiod -lnss_nisplus -lnss_nis -loauth2 -loauth -lopenal -lphonenumber-utils -lprivilege-info -lpthread -lpush -lresolv -lrt -lservice-adaptor-client -lshortcut -lsqlite3 -lssl -lstorage -lstt -ltbm -lthread_db -lttrace -ltts -lutil -lvc-elm -lvc -lwidget_service -lwidget_viewer_evas -lwifi-direct -lxml2 -lz -Xlinker -rpath="/opt/usr/apps/org.tizen.tg-engine-service/lib" -Werror-implicit-function-declaration
+
+build tg-engine-service: build_target tg_engine/tg_engine.o src/server_response.o src/tg-engine-service.o src/tg_db_wrapper.o src/tg_server.o mtprotocol/binlog.o mtprotocol/mime-types.o mtprotocol/mtproto-client.o mtprotocol/mtproto-common.o mtprotocol/mtproto-utils.o mtprotocol/queries.o mtprotocol/structures.o mtprotocol/tg-mime-types.o mtprotocol/tgl-net.o mtprotocol/tgl-timers.o mtprotocol/tgl.o mtprotocol/tools.o mtprotocol/updates.o mtprotocol/auto/auto.o db_manager/tg_db_manager.o 
+build ast: phony tg_engine/tg_engine.o.ast src/server_response.o.ast src/tg-engine-service.o.ast src/tg_db_wrapper.o.ast src/tg_server.o.ast mtprotocol/binlog.o.ast mtprotocol/mime-types.o.ast mtprotocol/mtproto-client.o.ast mtprotocol/mtproto-common.o.ast mtprotocol/mtproto-utils.o.ast mtprotocol/queries.o.ast mtprotocol/structures.o.ast mtprotocol/tg-mime-types.o.ast mtprotocol/tgl-net.o.ast mtprotocol/tgl-timers.o.ast mtprotocol/tgl.o.ast mtprotocol/tools.o.ast mtprotocol/updates.o.ast mtprotocol/auto/auto.o.ast db_manager/tg_db_manager.o.ast 
+build fn: phony tg_engine/tg_engine.o.fn src/server_response.o.fn src/tg-engine-service.o.fn src/tg_db_wrapper.o.fn src/tg_server.o.fn mtprotocol/binlog.o.fn mtprotocol/mime-types.o.fn mtprotocol/mtproto-client.o.fn mtprotocol/mtproto-common.o.fn mtprotocol/mtproto-utils.o.fn mtprotocol/queries.o.fn mtprotocol/structures.o.fn mtprotocol/tg-mime-types.o.fn mtprotocol/tgl-net.o.fn mtprotocol/tgl-timers.o.fn mtprotocol/tgl.o.fn mtprotocol/tools.o.fn mtprotocol/updates.o.fn mtprotocol/auto/auto.o.fn db_manager/tg_db_manager.o.fn 
+build extfn: ext_fn tg_engine/tg_engine.o.fn src/server_response.o.fn src/tg-engine-service.o.fn src/tg_db_wrapper.o.fn src/tg_server.o.fn mtprotocol/binlog.o.fn mtprotocol/mime-types.o.fn mtprotocol/mtproto-client.o.fn mtprotocol/mtproto-common.o.fn mtprotocol/mtproto-utils.o.fn mtprotocol/queries.o.fn mtprotocol/structures.o.fn mtprotocol/tg-mime-types.o.fn mtprotocol/tgl-net.o.fn mtprotocol/tgl-timers.o.fn mtprotocol/tgl.o.fn mtprotocol/tools.o.fn mtprotocol/updates.o.fn mtprotocol/auto/auto.o.fn db_manager/tg_db_manager.o.fn  | clean_sa ast
+build sa: phony tg_engine/tg_engine.o.sa src/server_response.o.sa src/tg-engine-service.o.sa src/tg_db_wrapper.o.sa src/tg_server.o.sa mtprotocol/binlog.o.sa mtprotocol/mime-types.o.sa mtprotocol/mtproto-client.o.sa mtprotocol/mtproto-common.o.sa mtprotocol/mtproto-utils.o.sa mtprotocol/queries.o.sa mtprotocol/structures.o.sa mtprotocol/tg-mime-types.o.sa mtprotocol/tgl-net.o.sa mtprotocol/tgl-timers.o.sa mtprotocol/tgl.o.sa mtprotocol/tools.o.sa mtprotocol/updates.o.sa mtprotocol/auto/auto.o.sa db_manager/tg_db_manager.o.sa 
+
diff --git a/tg-engine-service/Debug/compile_commands.json b/tg-engine-service/Debug/compile_commands.json
new file mode 100644 (file)
index 0000000..323a108
--- /dev/null
@@ -0,0 +1,62 @@
+[
+  { "directory": "/home/sandeep/workspace_2_4/tg-engine-service/Debug",
+    "command": "clang [-D_DEBUG -D__OpenBSD__, -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine_utils\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/db_manager\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/inc\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tl-parser\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine\" -I/home/sandeep/tizen-sdk-2.4/library -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine/tg_engine.c\"",
+    "file": "/home/sandeep/workspace_2_4/tg-engine-service/tg_engine/tg_engine.c" },
+  { "directory": "/home/sandeep/workspace_2_4/tg-engine-service/Debug",
+    "command": "clang [-D_DEBUG -D__OpenBSD__, -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine_utils\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/db_manager\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/inc\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tl-parser\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine\" -I/home/sandeep/tizen-sdk-2.4/library -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/tg-engine-service/src/server_response.c\"",
+    "file": "/home/sandeep/workspace_2_4/tg-engine-service/src/server_response.c" },
+  { "directory": "/home/sandeep/workspace_2_4/tg-engine-service/Debug",
+    "command": "clang [-D_DEBUG -D__OpenBSD__, -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine_utils\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/db_manager\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/inc\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tl-parser\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine\" -I/home/sandeep/tizen-sdk-2.4/library -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/tg-engine-service/src/tg-engine-service.c\"",
+    "file": "/home/sandeep/workspace_2_4/tg-engine-service/src/tg-engine-service.c" },
+  { "directory": "/home/sandeep/workspace_2_4/tg-engine-service/Debug",
+    "command": "clang [-D_DEBUG -D__OpenBSD__, -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine_utils\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/db_manager\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/inc\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tl-parser\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine\" -I/home/sandeep/tizen-sdk-2.4/library -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/tg-engine-service/src/tg_db_wrapper.c\"",
+    "file": "/home/sandeep/workspace_2_4/tg-engine-service/src/tg_db_wrapper.c" },
+  { "directory": "/home/sandeep/workspace_2_4/tg-engine-service/Debug",
+    "command": "clang [-D_DEBUG -D__OpenBSD__, -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine_utils\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/db_manager\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/inc\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tl-parser\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine\" -I/home/sandeep/tizen-sdk-2.4/library -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/tg-engine-service/src/tg_server.c\"",
+    "file": "/home/sandeep/workspace_2_4/tg-engine-service/src/tg_server.c" },
+  { "directory": "/home/sandeep/workspace_2_4/tg-engine-service/Debug",
+    "command": "clang [-D_DEBUG -D__OpenBSD__, -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine_utils\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/db_manager\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/inc\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tl-parser\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine\" -I/home/sandeep/tizen-sdk-2.4/library -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/binlog.c\"",
+    "file": "/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/binlog.c" },
+  { "directory": "/home/sandeep/workspace_2_4/tg-engine-service/Debug",
+    "command": "clang [-D_DEBUG -D__OpenBSD__, -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine_utils\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/db_manager\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/inc\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tl-parser\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine\" -I/home/sandeep/tizen-sdk-2.4/library -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/mime-types.c\"",
+    "file": "/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/mime-types.c" },
+  { "directory": "/home/sandeep/workspace_2_4/tg-engine-service/Debug",
+    "command": "clang [-D_DEBUG -D__OpenBSD__, -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine_utils\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/db_manager\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/inc\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tl-parser\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine\" -I/home/sandeep/tizen-sdk-2.4/library -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/mtproto-client.c\"",
+    "file": "/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/mtproto-client.c" },
+  { "directory": "/home/sandeep/workspace_2_4/tg-engine-service/Debug",
+    "command": "clang [-D_DEBUG -D__OpenBSD__, -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine_utils\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/db_manager\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/inc\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tl-parser\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine\" -I/home/sandeep/tizen-sdk-2.4/library -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/mtproto-common.c\"",
+    "file": "/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/mtproto-common.c" },
+  { "directory": "/home/sandeep/workspace_2_4/tg-engine-service/Debug",
+    "command": "clang [-D_DEBUG -D__OpenBSD__, -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine_utils\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/db_manager\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/inc\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tl-parser\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine\" -I/home/sandeep/tizen-sdk-2.4/library -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/mtproto-utils.c\"",
+    "file": "/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/mtproto-utils.c" },
+  { "directory": "/home/sandeep/workspace_2_4/tg-engine-service/Debug",
+    "command": "clang [-D_DEBUG -D__OpenBSD__, -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine_utils\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/db_manager\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/inc\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tl-parser\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine\" -I/home/sandeep/tizen-sdk-2.4/library -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/queries.c\"",
+    "file": "/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/queries.c" },
+  { "directory": "/home/sandeep/workspace_2_4/tg-engine-service/Debug",
+    "command": "clang [-D_DEBUG -D__OpenBSD__, -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine_utils\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/db_manager\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/inc\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tl-parser\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine\" -I/home/sandeep/tizen-sdk-2.4/library -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/structures.c\"",
+    "file": "/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/structures.c" },
+  { "directory": "/home/sandeep/workspace_2_4/tg-engine-service/Debug",
+    "command": "clang [-D_DEBUG -D__OpenBSD__, -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine_utils\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/db_manager\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/inc\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tl-parser\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine\" -I/home/sandeep/tizen-sdk-2.4/library -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tg-mime-types.c\"",
+    "file": "/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tg-mime-types.c" },
+  { "directory": "/home/sandeep/workspace_2_4/tg-engine-service/Debug",
+    "command": "clang [-D_DEBUG -D__OpenBSD__, -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine_utils\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/db_manager\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/inc\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tl-parser\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine\" -I/home/sandeep/tizen-sdk-2.4/library -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tgl-net.c\"",
+    "file": "/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tgl-net.c" },
+  { "directory": "/home/sandeep/workspace_2_4/tg-engine-service/Debug",
+    "command": "clang [-D_DEBUG -D__OpenBSD__, -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine_utils\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/db_manager\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/inc\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tl-parser\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine\" -I/home/sandeep/tizen-sdk-2.4/library -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tgl-timers.c\"",
+    "file": "/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tgl-timers.c" },
+  { "directory": "/home/sandeep/workspace_2_4/tg-engine-service/Debug",
+    "command": "clang [-D_DEBUG -D__OpenBSD__, -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine_utils\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/db_manager\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/inc\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tl-parser\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine\" -I/home/sandeep/tizen-sdk-2.4/library -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tgl.c\"",
+    "file": "/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tgl.c" },
+  { "directory": "/home/sandeep/workspace_2_4/tg-engine-service/Debug",
+    "command": "clang [-D_DEBUG -D__OpenBSD__, -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine_utils\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/db_manager\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/inc\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tl-parser\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine\" -I/home/sandeep/tizen-sdk-2.4/library -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tools.c\"",
+    "file": "/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tools.c" },
+  { "directory": "/home/sandeep/workspace_2_4/tg-engine-service/Debug",
+    "command": "clang [-D_DEBUG -D__OpenBSD__, -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine_utils\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/db_manager\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/inc\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tl-parser\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine\" -I/home/sandeep/tizen-sdk-2.4/library -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/updates.c\"",
+    "file": "/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/updates.c" },
+  { "directory": "/home/sandeep/workspace_2_4/tg-engine-service/Debug",
+    "command": "clang [-D_DEBUG -D__OpenBSD__, -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine_utils\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/db_manager\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/inc\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tl-parser\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine\" -I/home/sandeep/tizen-sdk-2.4/library -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto/auto.c\"",
+    "file": "/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto/auto.c" },
+  { "directory": "/home/sandeep/workspace_2_4/tg-engine-service/Debug",
+    "command": "clang [-D_DEBUG -D__OpenBSD__, -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine_utils\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/db_manager\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/inc\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tl-parser\" -I\"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine\" -I/home/sandeep/tizen-sdk-2.4/library -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -O0, -g3, -Wall, -c -fmessage-length=0, -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot=\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core\" -mthumb, -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2\" -I\"/home/sandeep/tizen-sdk-2.4/library\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include\" -I\"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include\", -Werror-implicit-function-declaration] \"/home/sandeep/workspace_2_4/tg-engine-service/db_manager/tg_db_manager.c\"",
+    "file": "/home/sandeep/workspace_2_4/tg-engine-service/db_manager/tg_db_manager.c" },
+]
diff --git a/tg-engine-service/Debug/db_manager/build.ninja b/tg-engine-service/Debug/db_manager/build.ninja
new file mode 100644 (file)
index 0000000..05144ad
--- /dev/null
@@ -0,0 +1,12 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+
+ctool = clang
+cflags = -D_DEBUG -D__OpenBSD__ -I"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine_utils" -I"/home/sandeep/workspace_2_4/tg-engine-service/db_manager" -I"/home/sandeep/workspace_2_4/tg-engine-service/inc" -I"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol" -I"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto" -I"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tl-parser" -I"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine" -I/home/sandeep/tizen-sdk-2.4/library -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2" -I"/home/sandeep/tizen-sdk-2.4/library" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include" -O0 -g3 -Wall -c -fmessage-length=0 -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot="/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core" -mthumb -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2" -I"/home/sandeep/tizen-sdk-2.4/library" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include" -Werror-implicit-function-declaration
+
+build db_manager/tg_db_manager.o: build_c /home/sandeep/workspace_2_4/tg-engine-service/db_manager/tg_db_manager.c 
+build db_manager/tg_db_manager.o.ast: build_c_ast /home/sandeep/workspace_2_4/tg-engine-service/db_manager/tg_db_manager.c 
+build db_manager/tg_db_manager.o.fn: build_c_fn db_manager/tg_db_manager.o.ast 
+build db_manager/tg_db_manager.o.sa: build_c_sa db_manager/tg_db_manager.o.ast | extfn
diff --git a/tg-engine-service/Debug/db_manager/tg_db_manager.o b/tg-engine-service/Debug/db_manager/tg_db_manager.o
new file mode 100644 (file)
index 0000000..27a4dfb
Binary files /dev/null and b/tg-engine-service/Debug/db_manager/tg_db_manager.o differ
diff --git a/tg-engine-service/Debug/mtprotocol/auto/auto.o b/tg-engine-service/Debug/mtprotocol/auto/auto.o
new file mode 100644 (file)
index 0000000..72f5f2e
Binary files /dev/null and b/tg-engine-service/Debug/mtprotocol/auto/auto.o differ
diff --git a/tg-engine-service/Debug/mtprotocol/auto/build.ninja b/tg-engine-service/Debug/mtprotocol/auto/build.ninja
new file mode 100644 (file)
index 0000000..c9be1f8
--- /dev/null
@@ -0,0 +1,12 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+
+ctool = clang
+cflags = -D_DEBUG -D__OpenBSD__ -I"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine_utils" -I"/home/sandeep/workspace_2_4/tg-engine-service/db_manager" -I"/home/sandeep/workspace_2_4/tg-engine-service/inc" -I"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol" -I"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto" -I"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tl-parser" -I"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine" -I/home/sandeep/tizen-sdk-2.4/library -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2" -I"/home/sandeep/tizen-sdk-2.4/library" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include" -O0 -g3 -Wall -c -fmessage-length=0 -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot="/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core" -mthumb -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2" -I"/home/sandeep/tizen-sdk-2.4/library" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include" -Werror-implicit-function-declaration
+
+build mtprotocol/auto/auto.o: build_c /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto/auto.c 
+build mtprotocol/auto/auto.o.ast: build_c_ast /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto/auto.c 
+build mtprotocol/auto/auto.o.fn: build_c_fn mtprotocol/auto/auto.o.ast 
+build mtprotocol/auto/auto.o.sa: build_c_sa mtprotocol/auto/auto.o.ast | extfn
diff --git a/tg-engine-service/Debug/mtprotocol/binlog.o b/tg-engine-service/Debug/mtprotocol/binlog.o
new file mode 100644 (file)
index 0000000..ab8890c
Binary files /dev/null and b/tg-engine-service/Debug/mtprotocol/binlog.o differ
diff --git a/tg-engine-service/Debug/mtprotocol/build.ninja b/tg-engine-service/Debug/mtprotocol/build.ninja
new file mode 100644 (file)
index 0000000..3e93b8f
--- /dev/null
@@ -0,0 +1,60 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+
+ctool = clang
+cflags = -D_DEBUG -D__OpenBSD__ -I"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine_utils" -I"/home/sandeep/workspace_2_4/tg-engine-service/db_manager" -I"/home/sandeep/workspace_2_4/tg-engine-service/inc" -I"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol" -I"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto" -I"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tl-parser" -I"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine" -I/home/sandeep/tizen-sdk-2.4/library -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2" -I"/home/sandeep/tizen-sdk-2.4/library" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include" -O0 -g3 -Wall -c -fmessage-length=0 -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot="/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core" -mthumb -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2" -I"/home/sandeep/tizen-sdk-2.4/library" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include" -Werror-implicit-function-declaration
+
+build mtprotocol/binlog.o: build_c /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/binlog.c 
+build mtprotocol/binlog.o.ast: build_c_ast /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/binlog.c 
+build mtprotocol/binlog.o.fn: build_c_fn mtprotocol/binlog.o.ast 
+build mtprotocol/binlog.o.sa: build_c_sa mtprotocol/binlog.o.ast | extfn
+build mtprotocol/mime-types.o: build_c /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/mime-types.c 
+build mtprotocol/mime-types.o.ast: build_c_ast /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/mime-types.c 
+build mtprotocol/mime-types.o.fn: build_c_fn mtprotocol/mime-types.o.ast 
+build mtprotocol/mime-types.o.sa: build_c_sa mtprotocol/mime-types.o.ast | extfn
+build mtprotocol/mtproto-client.o: build_c /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/mtproto-client.c 
+build mtprotocol/mtproto-client.o.ast: build_c_ast /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/mtproto-client.c 
+build mtprotocol/mtproto-client.o.fn: build_c_fn mtprotocol/mtproto-client.o.ast 
+build mtprotocol/mtproto-client.o.sa: build_c_sa mtprotocol/mtproto-client.o.ast | extfn
+build mtprotocol/mtproto-common.o: build_c /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/mtproto-common.c 
+build mtprotocol/mtproto-common.o.ast: build_c_ast /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/mtproto-common.c 
+build mtprotocol/mtproto-common.o.fn: build_c_fn mtprotocol/mtproto-common.o.ast 
+build mtprotocol/mtproto-common.o.sa: build_c_sa mtprotocol/mtproto-common.o.ast | extfn
+build mtprotocol/mtproto-utils.o: build_c /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/mtproto-utils.c 
+build mtprotocol/mtproto-utils.o.ast: build_c_ast /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/mtproto-utils.c 
+build mtprotocol/mtproto-utils.o.fn: build_c_fn mtprotocol/mtproto-utils.o.ast 
+build mtprotocol/mtproto-utils.o.sa: build_c_sa mtprotocol/mtproto-utils.o.ast | extfn
+build mtprotocol/queries.o: build_c /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/queries.c 
+build mtprotocol/queries.o.ast: build_c_ast /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/queries.c 
+build mtprotocol/queries.o.fn: build_c_fn mtprotocol/queries.o.ast 
+build mtprotocol/queries.o.sa: build_c_sa mtprotocol/queries.o.ast | extfn
+build mtprotocol/structures.o: build_c /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/structures.c 
+build mtprotocol/structures.o.ast: build_c_ast /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/structures.c 
+build mtprotocol/structures.o.fn: build_c_fn mtprotocol/structures.o.ast 
+build mtprotocol/structures.o.sa: build_c_sa mtprotocol/structures.o.ast | extfn
+build mtprotocol/tg-mime-types.o: build_c /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tg-mime-types.c 
+build mtprotocol/tg-mime-types.o.ast: build_c_ast /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tg-mime-types.c 
+build mtprotocol/tg-mime-types.o.fn: build_c_fn mtprotocol/tg-mime-types.o.ast 
+build mtprotocol/tg-mime-types.o.sa: build_c_sa mtprotocol/tg-mime-types.o.ast | extfn
+build mtprotocol/tgl-net.o: build_c /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tgl-net.c 
+build mtprotocol/tgl-net.o.ast: build_c_ast /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tgl-net.c 
+build mtprotocol/tgl-net.o.fn: build_c_fn mtprotocol/tgl-net.o.ast 
+build mtprotocol/tgl-net.o.sa: build_c_sa mtprotocol/tgl-net.o.ast | extfn
+build mtprotocol/tgl-timers.o: build_c /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tgl-timers.c 
+build mtprotocol/tgl-timers.o.ast: build_c_ast /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tgl-timers.c 
+build mtprotocol/tgl-timers.o.fn: build_c_fn mtprotocol/tgl-timers.o.ast 
+build mtprotocol/tgl-timers.o.sa: build_c_sa mtprotocol/tgl-timers.o.ast | extfn
+build mtprotocol/tgl.o: build_c /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tgl.c 
+build mtprotocol/tgl.o.ast: build_c_ast /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tgl.c 
+build mtprotocol/tgl.o.fn: build_c_fn mtprotocol/tgl.o.ast 
+build mtprotocol/tgl.o.sa: build_c_sa mtprotocol/tgl.o.ast | extfn
+build mtprotocol/tools.o: build_c /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tools.c 
+build mtprotocol/tools.o.ast: build_c_ast /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tools.c 
+build mtprotocol/tools.o.fn: build_c_fn mtprotocol/tools.o.ast 
+build mtprotocol/tools.o.sa: build_c_sa mtprotocol/tools.o.ast | extfn
+build mtprotocol/updates.o: build_c /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/updates.c 
+build mtprotocol/updates.o.ast: build_c_ast /home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/updates.c 
+build mtprotocol/updates.o.fn: build_c_fn mtprotocol/updates.o.ast 
+build mtprotocol/updates.o.sa: build_c_sa mtprotocol/updates.o.ast | extfn
diff --git a/tg-engine-service/Debug/mtprotocol/mime-types.o b/tg-engine-service/Debug/mtprotocol/mime-types.o
new file mode 100644 (file)
index 0000000..c1ede62
Binary files /dev/null and b/tg-engine-service/Debug/mtprotocol/mime-types.o differ
diff --git a/tg-engine-service/Debug/mtprotocol/mtproto-client.o b/tg-engine-service/Debug/mtprotocol/mtproto-client.o
new file mode 100644 (file)
index 0000000..0d8df04
Binary files /dev/null and b/tg-engine-service/Debug/mtprotocol/mtproto-client.o differ
diff --git a/tg-engine-service/Debug/mtprotocol/mtproto-common.o b/tg-engine-service/Debug/mtprotocol/mtproto-common.o
new file mode 100644 (file)
index 0000000..6204d7d
Binary files /dev/null and b/tg-engine-service/Debug/mtprotocol/mtproto-common.o differ
diff --git a/tg-engine-service/Debug/mtprotocol/mtproto-utils.o b/tg-engine-service/Debug/mtprotocol/mtproto-utils.o
new file mode 100644 (file)
index 0000000..fa77f8d
Binary files /dev/null and b/tg-engine-service/Debug/mtprotocol/mtproto-utils.o differ
diff --git a/tg-engine-service/Debug/mtprotocol/queries.o b/tg-engine-service/Debug/mtprotocol/queries.o
new file mode 100644 (file)
index 0000000..8ea1579
Binary files /dev/null and b/tg-engine-service/Debug/mtprotocol/queries.o differ
diff --git a/tg-engine-service/Debug/mtprotocol/structures.o b/tg-engine-service/Debug/mtprotocol/structures.o
new file mode 100644 (file)
index 0000000..dc51272
Binary files /dev/null and b/tg-engine-service/Debug/mtprotocol/structures.o differ
diff --git a/tg-engine-service/Debug/mtprotocol/tg-mime-types.o b/tg-engine-service/Debug/mtprotocol/tg-mime-types.o
new file mode 100644 (file)
index 0000000..159bb3c
Binary files /dev/null and b/tg-engine-service/Debug/mtprotocol/tg-mime-types.o differ
diff --git a/tg-engine-service/Debug/mtprotocol/tgl-net.o b/tg-engine-service/Debug/mtprotocol/tgl-net.o
new file mode 100644 (file)
index 0000000..0e84b35
Binary files /dev/null and b/tg-engine-service/Debug/mtprotocol/tgl-net.o differ
diff --git a/tg-engine-service/Debug/mtprotocol/tgl-timers.o b/tg-engine-service/Debug/mtprotocol/tgl-timers.o
new file mode 100644 (file)
index 0000000..9749cd7
Binary files /dev/null and b/tg-engine-service/Debug/mtprotocol/tgl-timers.o differ
diff --git a/tg-engine-service/Debug/mtprotocol/tgl.o b/tg-engine-service/Debug/mtprotocol/tgl.o
new file mode 100644 (file)
index 0000000..78303b2
Binary files /dev/null and b/tg-engine-service/Debug/mtprotocol/tgl.o differ
diff --git a/tg-engine-service/Debug/mtprotocol/tools.o b/tg-engine-service/Debug/mtprotocol/tools.o
new file mode 100644 (file)
index 0000000..01a790b
Binary files /dev/null and b/tg-engine-service/Debug/mtprotocol/tools.o differ
diff --git a/tg-engine-service/Debug/mtprotocol/updates.o b/tg-engine-service/Debug/mtprotocol/updates.o
new file mode 100644 (file)
index 0000000..1d79d8f
Binary files /dev/null and b/tg-engine-service/Debug/mtprotocol/updates.o differ
diff --git a/tg-engine-service/Debug/org.tizen.tg-engine-service-1.0.0-arm.tpk b/tg-engine-service/Debug/org.tizen.tg-engine-service-1.0.0-arm.tpk
new file mode 100644 (file)
index 0000000..46cb53e
Binary files /dev/null and b/tg-engine-service/Debug/org.tizen.tg-engine-service-1.0.0-arm.tpk differ
diff --git a/tg-engine-service/Debug/rules.ninja b/tg-engine-service/Debug/rules.ninja
new file mode 100644 (file)
index 0000000..e9c2479
--- /dev/null
@@ -0,0 +1,197 @@
+#################################################################################
+# C/ CPP Compilation Rules
+#################################################################################
+
+rule build_c
+  command = $ctool -MMD -MT $out -MF $out.d $pchInc $cflags -c $in -o $out
+  description = Building $out
+  depfile = $out.d
+  deps = gcc
+
+rule build_long_c
+  command = $ctool -MMD -MT $out -MF $out.d @$out.rsp -c $in -o $out
+  description = Building $out
+  depfile = $out.d
+  deps = gcc
+  rspfile = $out.rsp
+  rspfile_content = $pchInc $cflags
+
+rule build_cpp
+  command = $cpptool -MMD -MT $out -MF $out.d $pchInc $cppflags -c $in -o $out
+  description = Building $out
+  depfile = $out.d
+
+rule build_long_cpp
+  command = $cpptool -MMD -MT $out -MF $out.d @$out.rsp -c $in -o $out
+  description = Building $out
+  depfile = $out.d
+  rspfile = $out.rsp
+  rspfile_content = $pchInc $cppflags
+
+#################################################################################
+# Link Rules
+#################################################################################
+
+rule build_target
+  command = $targettool -o $out $in $userobj $libs $targetflags
+  description = Linking $out
+
+rule long_build_target
+  command = $targettool -o $out @$out.rsp
+  description = Linking $out
+  rspfile = $out.rsp
+  rspfile_content = $in $userobj $libs $targetflags
+
+build main-build: phony all
+
+#################################################################################
+# Prebuild/ Postbuild Rules
+#################################################################################
+
+rule pre_build
+  command = $prebuildcmd
+  description = Executing Prebuild Steps
+  pool = console
+
+rule post_build
+  command = $postbuildcmd
+  description = Executing Postbuild Steps
+  pool = console
+
+rule build_pch
+  command = $pchtool -x c-header -MMD -MT $out -MF $out.d $pchflags -c $in -o $out
+  description = Building $out
+  depfile = $out.d
+
+rule build_long_pch
+  command = $pchtool -x c-header -MMD -MT $out -MF $out.d $pchflags -c $in -o $out
+  description = Building $out
+  depfile = $out.d
+  rspfile = $out.rsp
+  rspfile_content = $pchflags
+
+build pre-build: pre_build
+build post-build: post_build | main-build
+
+#################################################################################
+# Secondary Output  Rules
+#################################################################################
+
+rule build_edc
+  command = $edctool -deps $out.d $edcflags $in $out
+  description = Building $out
+  depfile = $out.d
+  deps = gcc
+
+rule build_long_edc
+  command = $edctool -deps $out.d @$out.rsp $in $out
+  description = Building $out
+  depfile = $out.d
+  deps = gcc
+  rspfile = $out.rsp
+  rspfile_content = $edcflags
+
+rule build_po
+  command = $potool -o $out $in
+  description = Building $out
+
+rule build_long_po
+  command = $potool -o $out @$out.rsp
+  description = Building $out
+  rspfile = $out.rsp
+  rspfile_content = $in
+
+#################################################################################
+# AST Rules
+#################################################################################
+
+rule build_c_ast
+  command = $ctool -emit-ast -c $in -o $out $pchInc $cflags
+  description = Building $out
+
+rule build_long_c_ast
+  command = $ctool -emit-ast -c $in -o $out @$out.rsp
+  description = Building $out
+  rspfile = $out.rsp
+  rspfile_content = $pchInc $cflags
+
+rule build_cpp_ast
+  command = $cpptool -emit-ast -c $in -o $out $pchInc $cppflags
+  description = Building $out
+
+rule build_long_cpp_ast
+  command = $cpptool -emit-ast -c $in -o $out @$out.rsp
+  description = Building $out
+  rspfile = $out.rsp
+  rspfile_content = $pchInc $cppflags
+
+#################################################################################
+# FN Map Rules
+#################################################################################
+
+rule build_c_fn
+  command = clangFnMapGen -o $out -ast $in $in --
+  description = Building $out
+
+rule build_long_c_fn
+  command = clangFnMapGen -o $out -ast $in $in --
+  description = Building $out
+
+rule build_cpp_fn
+  command = clangFnMapGen -o $out -ast $in $in --
+  description = Building $out
+
+rule build_long_cpp_fn
+  command = clangFnMapGen -o $out -ast $in $in --
+  description = Building $out
+
+rule ext_fn
+  command = $shell cat $in > $sareportdir/externalFnMap.txt
+  description = Generating External Function Map
+  pool = console
+
+#################################################################################
+# SA Rules
+#################################################################################
+
+rule build_c_sa
+  command = $ctool --analyze $in -Xclang -analyzer-purge=block -Xclang -analyzer-checker=$sa_checkers -o $sareportdir
+  description = Building $out
+
+rule build_long_c_sa
+  command = $ctool --analyze $in -Xclang -analyzer-purge=block -Xclang -analyzer-checker=$sa_checkers -o $sareportdir
+  description = Building $out
+
+rule build_cpp_sa
+  command = $cpptool --analyze $in -Xclang -analyzer-purge=block -Xclang -analyzer-checker=$sa_checkers -o $sareportdir
+  description = Building $out
+
+rule build_long_cpp_sa
+  command = $cpptool --analyze $in -Xclang -analyzer-purge=block -Xclang -analyzer-checker=$sa_checkers -o $sareportdir
+  description = Building $out
+
+#################################################################################
+# Clean Rules
+#################################################################################
+
+rule clean_all
+  command = ninja -t clean
+  description = Cleaning build files ...
+build clean: clean_all
+
+rule sa_report_clean
+  command = rm -rf $sareportdir/*.xml
+  description = Cleaning SA Report files ...
+build clean_sa: sa_report_clean
+
+#################################################################################
+# Compilation DB Step
+#################################################################################
+
+rule compdb_json
+  command = $shell ninja -t compdb cc cxx > $out
+  description = Generating $out
+build $builddir/compile_commands.json: compdb_json
+build compdb: phony $builddir/compile_commands.json
+
+
diff --git a/tg-engine-service/Debug/src/build.ninja b/tg-engine-service/Debug/src/build.ninja
new file mode 100644 (file)
index 0000000..db7673b
--- /dev/null
@@ -0,0 +1,24 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+
+ctool = clang
+cflags = -D_DEBUG -D__OpenBSD__ -I"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine_utils" -I"/home/sandeep/workspace_2_4/tg-engine-service/db_manager" -I"/home/sandeep/workspace_2_4/tg-engine-service/inc" -I"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol" -I"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto" -I"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tl-parser" -I"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine" -I/home/sandeep/tizen-sdk-2.4/library -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2" -I"/home/sandeep/tizen-sdk-2.4/library" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include" -O0 -g3 -Wall -c -fmessage-length=0 -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot="/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core" -mthumb -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2" -I"/home/sandeep/tizen-sdk-2.4/library" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include" -Werror-implicit-function-declaration
+
+build src/server_response.o: build_c /home/sandeep/workspace_2_4/tg-engine-service/src/server_response.c 
+build src/server_response.o.ast: build_c_ast /home/sandeep/workspace_2_4/tg-engine-service/src/server_response.c 
+build src/server_response.o.fn: build_c_fn src/server_response.o.ast 
+build src/server_response.o.sa: build_c_sa src/server_response.o.ast | extfn
+build src/tg-engine-service.o: build_c /home/sandeep/workspace_2_4/tg-engine-service/src/tg-engine-service.c 
+build src/tg-engine-service.o.ast: build_c_ast /home/sandeep/workspace_2_4/tg-engine-service/src/tg-engine-service.c 
+build src/tg-engine-service.o.fn: build_c_fn src/tg-engine-service.o.ast 
+build src/tg-engine-service.o.sa: build_c_sa src/tg-engine-service.o.ast | extfn
+build src/tg_db_wrapper.o: build_c /home/sandeep/workspace_2_4/tg-engine-service/src/tg_db_wrapper.c 
+build src/tg_db_wrapper.o.ast: build_c_ast /home/sandeep/workspace_2_4/tg-engine-service/src/tg_db_wrapper.c 
+build src/tg_db_wrapper.o.fn: build_c_fn src/tg_db_wrapper.o.ast 
+build src/tg_db_wrapper.o.sa: build_c_sa src/tg_db_wrapper.o.ast | extfn
+build src/tg_server.o: build_c /home/sandeep/workspace_2_4/tg-engine-service/src/tg_server.c 
+build src/tg_server.o.ast: build_c_ast /home/sandeep/workspace_2_4/tg-engine-service/src/tg_server.c 
+build src/tg_server.o.fn: build_c_fn src/tg_server.o.ast 
+build src/tg_server.o.sa: build_c_sa src/tg_server.o.ast | extfn
diff --git a/tg-engine-service/Debug/src/server_response.o b/tg-engine-service/Debug/src/server_response.o
new file mode 100644 (file)
index 0000000..79cfbb6
Binary files /dev/null and b/tg-engine-service/Debug/src/server_response.o differ
diff --git a/tg-engine-service/Debug/src/tg-engine-service.o b/tg-engine-service/Debug/src/tg-engine-service.o
new file mode 100644 (file)
index 0000000..7129414
Binary files /dev/null and b/tg-engine-service/Debug/src/tg-engine-service.o differ
diff --git a/tg-engine-service/Debug/src/tg_db_wrapper.o b/tg-engine-service/Debug/src/tg_db_wrapper.o
new file mode 100644 (file)
index 0000000..7f5f331
Binary files /dev/null and b/tg-engine-service/Debug/src/tg_db_wrapper.o differ
diff --git a/tg-engine-service/Debug/src/tg_server.o b/tg-engine-service/Debug/src/tg_server.o
new file mode 100644 (file)
index 0000000..5741cb5
Binary files /dev/null and b/tg-engine-service/Debug/src/tg_server.o differ
diff --git a/tg-engine-service/Debug/target.ninja b/tg-engine-service/Debug/target.ninja
new file mode 100644 (file)
index 0000000..71305de
--- /dev/null
@@ -0,0 +1,2 @@
+build all: phony tg-engine-service
+default all
diff --git a/tg-engine-service/Debug/tg-engine-service b/tg-engine-service/Debug/tg-engine-service
new file mode 100755 (executable)
index 0000000..a67989a
Binary files /dev/null and b/tg-engine-service/Debug/tg-engine-service differ
diff --git a/tg-engine-service/Debug/tg_engine/build.ninja b/tg-engine-service/Debug/tg_engine/build.ninja
new file mode 100644 (file)
index 0000000..64cb10f
--- /dev/null
@@ -0,0 +1,12 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+
+ctool = clang
+cflags = -D_DEBUG -D__OpenBSD__ -I"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine_utils" -I"/home/sandeep/workspace_2_4/tg-engine-service/db_manager" -I"/home/sandeep/workspace_2_4/tg-engine-service/inc" -I"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol" -I"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/auto" -I"/home/sandeep/workspace_2_4/tg-engine-service/mtprotocol/tl-parser" -I"/home/sandeep/workspace_2_4/tg-engine-service/tg_engine" -I/home/sandeep/tizen-sdk-2.4/library -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2" -I"/home/sandeep/tizen-sdk-2.4/library" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include" -O0 -g3 -Wall -c -fmessage-length=0 -target arm-tizen-linux-gnueabi -gcc-toolchain /home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../arm-linux-gnueabi-gcc-4.8/ -ccc-gcc-name arm-linux-gnueabi-g++ -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a8 -Wno-gnu -fPIE --sysroot="/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core" -mthumb -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/libxml2" -I"/home/sandeep/tizen-sdk-2.4/library" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appcore-agent" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/appfw" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/badge" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/base" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/cairo" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/calendar-service2" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ckm" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/contacts-svc" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/content" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/context-service" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dali-toolkit" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dbus-1.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/device" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/dlog" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-audio-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-avahi-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-con-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-fb-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-file-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-imf-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-input-evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-ipc-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ecore-x-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/e_dbus-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/edje-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eet-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efl-extension" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/efreet-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eina-1/eina" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eio-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eldbus-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/elementary-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/embryo-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eo-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/eom" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ethumb-client-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/evas-1" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ewebkit2-0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/fontconfig" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/freetype2" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/geofence" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/gio-unix-2.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/glib-2.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/json-glib-1.0" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/location" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/maps" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/media-content" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/messaging" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/metadata-editor" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minicontrol" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/minizip" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/network" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/notification" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/phonenumber-utils" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/sensor" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/shortcut" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/storage" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/system" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/telephony" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/ui" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/web" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_service" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/widget_viewer_evas" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/include/wifi-direct" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/dbus-1.0/include" -I"/home/sandeep/tizen-sdk-2.4/tools/smart-build-interface/../../platforms/tizen-2.4/mobile/rootstraps/mobile-2.4-device.core/usr/lib/glib-2.0/include" -Werror-implicit-function-declaration
+
+build tg_engine/tg_engine.o: build_c /home/sandeep/workspace_2_4/tg-engine-service/tg_engine/tg_engine.c 
+build tg_engine/tg_engine.o.ast: build_c_ast /home/sandeep/workspace_2_4/tg-engine-service/tg_engine/tg_engine.c 
+build tg_engine/tg_engine.o.fn: build_c_fn tg_engine/tg_engine.o.ast 
+build tg_engine/tg_engine.o.sa: build_c_sa tg_engine/tg_engine.o.ast | extfn
diff --git a/tg-engine-service/Debug/tg_engine/tg_engine.o b/tg-engine-service/Debug/tg_engine/tg_engine.o
new file mode 100644 (file)
index 0000000..2c134af
Binary files /dev/null and b/tg-engine-service/Debug/tg_engine/tg_engine.o differ
diff --git a/tg-engine-service/db_manager/tg_db_manager.c b/tg-engine-service/db_manager/tg_db_manager.c
new file mode 100644 (file)
index 0000000..cf01860
--- /dev/null
@@ -0,0 +1,446 @@
+/*
+ * tg_db_manager.c
+ *
+ *  Created on: Jun 1, 2015
+ *      Author: sandeep
+ */
+
+#include "tg_db_manager.h"
+#include <string.h>
+
+
+sqlite3* create_database(char* database_name)
+{
+       if(!database_name)
+               return NULL;
+
+       int ret;
+       sqlite3 *db;
+       ret = sqlite3_open(database_name, &db);
+       //ret = sqlite3_open_v2(database_name, &db, SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE, NULL);
+       if(ret) {
+               return NULL;
+       }
+       return db;
+}
+
+Eina_Bool create_table(sqlite3* db, const char* table_name, Eina_List* column_names, Eina_List* column_types)
+{
+       if(!db || !table_name || ! column_names || !column_types) {
+               return EINA_FALSE;
+       }
+
+       int ret = 0 ;
+       char* err_msg = 0;
+       int col_count = eina_list_count(column_names);
+
+       int str_len = strlen("CREATE TABLE IF NOT EXISTS ") + strlen(table_name) + strlen("(") + 1;
+       char* var_query = (char*)malloc(str_len);
+       strcpy(var_query,"CREATE TABLE IF NOT EXISTS ");
+       strcat(var_query, table_name);
+       strcat(var_query, "(");
+
+       for(int col = 0; col < col_count ; col++) {
+               char* col_name = eina_list_nth(column_names, col);
+               var_query = realloc(var_query, strlen(var_query)+strlen(col_name) + 1);
+               strcat(var_query, col_name);
+               var_query = realloc(var_query, strlen(var_query)+strlen(" ") + 1);
+               strcat(var_query, " ");
+               char* col_type = eina_list_nth(column_types, col);
+               var_query = realloc(var_query, strlen(var_query)+strlen(col_type) + 1);
+               strcat(var_query, col_type);
+               if(col < col_count - 1){
+                       var_query = realloc(var_query, strlen(var_query) + 2);
+                       strcat(var_query, ",");
+               } else {
+                       var_query = realloc(var_query, strlen(var_query) + 3);
+                       strcat(var_query, ");");
+               }
+       }
+
+       ret = sqlite3_exec(db,var_query, NULL,(void*)db, &err_msg);
+       if( ret != SQLITE_OK ){
+               sqlite3_free(err_msg);
+               return EINA_FALSE;
+       }
+       return EINA_TRUE;
+}
+
+Eina_Bool insert_table(sqlite3* db, const char* table_name, Eina_List* column_names, Eina_List* column_types, Eina_List* column_values)
+{
+       if(!db || !table_name || ! column_names || !column_types || !column_values) {
+               return EINA_FALSE;
+       }
+
+       int ret = 0 ;
+       char* err_msg = 0;
+       int col_count = eina_list_count(column_names);
+
+       int str_len = strlen("INSERT INTO ") + strlen(table_name) + strlen("(") + 1;
+       char* var_query = (char*)malloc(str_len);
+       strcpy(var_query,"INSERT INTO ");
+       strcat(var_query, table_name);
+       strcat(var_query, "(");
+
+       for(int col = 0; col < col_count ; col++) {
+
+               char* col_name = eina_list_nth(column_names, col);
+               var_query = realloc(var_query, strlen(var_query)+strlen(col_name) + 1);
+               strcat(var_query, col_name);
+
+               if(col < col_count - 1){
+                       var_query = realloc(var_query, strlen(var_query) + 2);
+                       strcat(var_query, ",");
+               } else {
+                       var_query = realloc(var_query, strlen(var_query) + strlen(") VALUES (") + 1);
+                       strcat(var_query, ") VALUES (");
+               }
+       }
+
+       int col_val_count = eina_list_count(column_values);
+
+       for(int col = 0; col < col_val_count ; col++) {
+
+               char* col_type = eina_list_nth(column_types, col);
+               char* col_value = NULL;
+               if(!strcmp(col_type, "INTEGER") || !strcmp(col_type, "INTEGER PRIMARY KEY NOT NULL")) {
+                       int* tmp_value = eina_list_nth(column_values, col);
+
+#if 0
+                       long long val = *tmp_value;
+                       col_value = (char*)malloc(50);
+                       //sprintf(col_value, "%lld", *tmp_value);
+                       sprintf(col_value, "%lld", val);
+#endif
+
+                       int act_val = (*tmp_value);
+                       col_value = (char*)malloc(50);
+                       sprintf(col_value, "%d", act_val);
+
+                       var_query = realloc(var_query, strlen(var_query)+strlen(col_value) + 1);
+                       strcat(var_query, col_value);
+
+               } else if(!strcmp(col_type, "TEXT") || !strcmp(col_type, "TEXT PRIMARY KEY NOT NULL")) {
+                       char* tmp_value = eina_list_nth(column_values, col);
+                       col_value = (char*)malloc(strlen(tmp_value) + 1);
+                       strcpy(col_value,tmp_value);
+
+                       var_query = realloc(var_query, strlen(var_query)+strlen("'") + 1);
+                       strcat(var_query, "'");
+
+                       var_query = realloc(var_query, strlen(var_query)+strlen(col_value) + 1);
+                       strcat(var_query, col_value);
+
+                       var_query = realloc(var_query, strlen(var_query)+strlen("'") + 1);
+                       strcat(var_query, "'");
+               }
+
+               if(col < col_count - 1){
+                       var_query = realloc(var_query, strlen(var_query) + 3);
+                       strcat(var_query, ", ");
+               } else {
+                       var_query = realloc(var_query, strlen(var_query) + 3);
+                       strcat(var_query, ");");
+               }
+               free(col_value);
+       }
+
+       ret = sqlite3_exec(db,var_query, NULL,(void*)db, &err_msg);
+       if( ret != SQLITE_OK ){
+               sqlite3_free(err_msg);
+               return EINA_FALSE;
+       }
+       return EINA_TRUE;
+
+}
+
+
+Eina_Bool update_table(sqlite3* db, const char* table_name, Eina_List* column_names, Eina_List* column_types, Eina_List* column_values, const char* where_clause)
+{
+       if(!db || !table_name || ! column_names || !column_types || !column_values) {
+               return EINA_FALSE;
+       }
+
+       int ret = 0 ;
+       char* err_msg = 0;
+       int col_count = eina_list_count(column_names);
+
+       int str_len = strlen("UPDATE ") + strlen(table_name) + strlen(" SET ") + 1;
+       char* var_query = (char*)malloc(str_len);
+       strcpy(var_query,"UPDATE ");
+       strcat(var_query, table_name);
+       strcat(var_query, " SET ");
+
+
+       int col_val_count = eina_list_count(column_values);
+
+       for(int col = 0; col < col_val_count ; col++) {
+               char* col_name = eina_list_nth(column_names, col);
+               char* col_type = eina_list_nth(column_types, col);
+
+               char* col_value = NULL;
+               if(!strcmp(col_type, "INTEGER") || !strcmp(col_type, "INTEGER PRIMARY KEY NOT NULL")) {
+                       int* tmp_value = eina_list_nth(column_values, col);
+
+                       int act_val = (*tmp_value);
+                       col_value = (char*)malloc(50);
+                       sprintf(col_value, "%d", act_val);
+
+                       var_query = realloc(var_query, strlen(var_query) + strlen(col_name) + strlen(" = ") + strlen(col_value) + 1);
+                       strcat(var_query, col_name);
+                       strcat(var_query, " = ");
+                       strcat(var_query, col_value);
+
+               } else if(!strcmp(col_type, "TEXT") || !strcmp(col_type, "TEXT PRIMARY KEY NOT NULL")) {
+
+                       char* tmp_value = eina_list_nth(column_values, col);
+                       col_value = (char*)malloc(strlen(tmp_value) + 1);
+                       strcpy(col_value,tmp_value);
+
+                       var_query = realloc(var_query, strlen(var_query)+ strlen(col_name) + strlen(" = ")+strlen("'") + 1);
+                       strcat(var_query, col_name);
+                       strcat(var_query, " = ");
+                       strcat(var_query, "'");
+
+                       var_query = realloc(var_query, strlen(var_query)+strlen(col_value) + 1);
+                       strcat(var_query, col_value);
+
+                       var_query = realloc(var_query, strlen(var_query)+strlen("'") + 1);
+                       strcat(var_query, "'");
+               }
+
+               if(col < col_count - 1){
+                       var_query = realloc(var_query, strlen(var_query) + 3);
+                       strcat(var_query, ", ");
+               } else {
+                       var_query = realloc(var_query, strlen(var_query) + 2);
+                       strcat(var_query, " ");
+               }
+               free(col_value);
+       }
+
+       var_query = realloc(var_query, strlen(var_query) + strlen(" WHERE ") + strlen(where_clause) + 2);
+       strcat(var_query, " WHERE ");
+       strcat(var_query, where_clause);
+       strcat(var_query, ";");
+
+       ret = sqlite3_exec(db,var_query, NULL,(void*)db, &err_msg);
+       if( ret != SQLITE_OK ){
+               sqlite3_free(err_msg);
+               return EINA_FALSE;
+       }
+       return EINA_TRUE;
+
+}
+
+Eina_Bool get_values_from_table(sqlite3* db, const char* table_name, Eina_List* column_names, int (*callback)(void*,int,char**,char**), const char* where_clause, void* data_to_callback)
+{
+       if (!db || !table_name) {
+               return EINA_FALSE;
+       }
+
+       /*****No rows identification*****/
+
+       char* row_cnt_qry = (char*)malloc(strlen("SELECT COUNT(*) FROM ") + strlen(table_name) + strlen(";") +1);
+       strcpy(row_cnt_qry, "SELECT COUNT(*) FROM ");
+       strcat(row_cnt_qry, table_name);
+       strcat(row_cnt_qry, ";");
+
+       int no_of_rows = 0;
+       //ret = sqlite3_exec(db,var_query, callback,(void*)db, &err_msg);
+
+       sqlite3_stmt *stmt;
+       if (sqlite3_prepare_v2(db, row_cnt_qry, -1, &stmt, NULL) == SQLITE_OK) {
+               if (sqlite3_step(stmt) == SQLITE_ERROR) {
+                       no_of_rows = 0;
+               } else {
+                       no_of_rows = sqlite3_column_int(stmt, 0);
+               }
+               sqlite3_finalize(stmt);
+       }
+
+       free(row_cnt_qry);
+       if(no_of_rows <= 0) {
+               return EINA_FALSE;
+       }
+
+       /********************************/
+
+       int ret = 0 ;
+       char* err_msg = 0;
+       //int col_count = eina_list_count(column_names);
+
+       int str_len = strlen("SELECT ") + 1;
+       char* var_query = (char*)malloc(str_len);
+       strcpy(var_query,"SELECT ");
+       if(!column_names) {
+               var_query = realloc(var_query, strlen(var_query) + 3);
+               strcat(var_query, "* ");
+       } else {
+
+               int col_count = eina_list_count(column_names);
+               char* col_name = NULL;
+               for(int col = 0; col < col_count ; col++) {
+                       col_name = eina_list_nth(column_names, col);
+                       var_query = realloc(var_query, strlen(var_query)+strlen(col_name) + 1);
+                       strcat(var_query, col_name);
+                       col_name = NULL;
+                       var_query = realloc(var_query, strlen(var_query)+strlen(" ") + 1);
+
+                       if(col < col_count - 1){
+                               var_query = realloc(var_query, strlen(var_query) + 3);
+                               strcat(var_query, ", ");
+                       } else {
+                               var_query = realloc(var_query, strlen(var_query) + 2);
+                               strcat(var_query, " ");
+                       }
+               }
+
+       }
+
+       var_query = realloc(var_query, strlen(var_query) + strlen("FROM ") + 2);
+       strcat(var_query, "FROM ");
+       var_query = realloc(var_query, strlen(var_query) + strlen(table_name) + 1);
+       strcat(var_query, table_name);
+
+       if (where_clause) {
+               var_query = realloc(var_query, strlen(var_query)+strlen(" WHERE ") + 1);
+               strcat(var_query, " WHERE ");
+               var_query = realloc(var_query, strlen(var_query)+strlen(where_clause) + 1);
+               strcat(var_query, where_clause);
+       }
+
+       var_query = realloc(var_query, strlen(var_query) + 2);
+       strcat(var_query, ";");
+
+
+       ret = sqlite3_exec(db,var_query, callback,(void*)data_to_callback, &err_msg);
+       if( ret != SQLITE_OK ){
+               sqlite3_free(err_msg);
+               return EINA_FALSE;
+       }
+
+       free(var_query);
+       return EINA_TRUE;
+}
+
+Eina_List* get_values_from_table_sync(sqlite3* db, const char* table_name, Eina_List* column_names, Eina_List* column_types, const char* where_clause)
+{
+       Eina_List* query_vals = NULL;
+
+       if (!db || !table_name) {
+               return NULL;
+       }
+
+       /*****No rows identification*****/
+
+       char* row_cnt_qry = (char*)malloc(strlen("SELECT COUNT(*) FROM ") + strlen(table_name) + strlen(";") +1);
+       strcpy(row_cnt_qry, "SELECT COUNT(*) FROM ");
+       strcat(row_cnt_qry, table_name);
+       strcat(row_cnt_qry, ";");
+
+       int no_of_rows = 0;
+       //ret = sqlite3_exec(db,var_query, callback,(void*)db, &err_msg);
+
+       sqlite3_stmt *stmt;
+       if (sqlite3_prepare_v2(db, row_cnt_qry, -1, &stmt, NULL) == SQLITE_OK) {
+               if (sqlite3_step(stmt) == SQLITE_ERROR) {
+                       no_of_rows = 0;
+               } else {
+                       no_of_rows = sqlite3_column_int(stmt, 0);
+               }
+               sqlite3_finalize(stmt);
+       }
+
+       free(row_cnt_qry);
+       if(no_of_rows <= 0) {
+               return EINA_FALSE;
+       }
+
+       /********************************/
+
+       int ret = 0 ;
+       char* err_msg = 0;
+       //int col_count = eina_list_count(column_names);
+
+       int str_len = strlen("SELECT ") + 1;
+       char* var_query = (char*)malloc(str_len);
+       strcpy(var_query,"SELECT ");
+       if(!column_names) {
+               var_query = realloc(var_query, strlen(var_query) + 3);
+               strcat(var_query, "* ");
+       } else {
+
+               int col_count = eina_list_count(column_names);
+               char* col_name = NULL;
+               for(int col = 0; col < col_count ; col++) {
+                       col_name = eina_list_nth(column_names, col);
+                       var_query = realloc(var_query, strlen(var_query)+strlen(col_name) + 1);
+                       strcat(var_query, col_name);
+                       col_name = NULL;
+                       var_query = realloc(var_query, strlen(var_query)+strlen(" ") + 1);
+
+                       if(col < col_count - 1){
+                               var_query = realloc(var_query, strlen(var_query) + 3);
+                               strcat(var_query, ", ");
+                       } else {
+                               var_query = realloc(var_query, strlen(var_query) + 2);
+                               strcat(var_query, " ");
+                       }
+               }
+
+       }
+
+       var_query = realloc(var_query, strlen(var_query) + strlen("FROM ") + 2);
+       strcat(var_query, "FROM ");
+       var_query = realloc(var_query, strlen(var_query) + strlen(table_name) + 1);
+       strcat(var_query, table_name);
+
+       if (where_clause) {
+               var_query = realloc(var_query, strlen(var_query)+strlen(" WHERE ") + 1);
+               strcat(var_query, " WHERE ");
+               var_query = realloc(var_query, strlen(var_query)+strlen(where_clause) + 1);
+               strcat(var_query, where_clause);
+       }
+
+       var_query = realloc(var_query, strlen(var_query) + 2);
+       strcat(var_query, ";");
+
+
+       ret = sqlite3_prepare_v2(db, var_query, -1, &stmt, 0);
+       if( ret != SQLITE_OK ){
+               sqlite3_free(err_msg);
+               return NULL;
+       }
+
+       while(sqlite3_step(stmt) == SQLITE_ROW) {
+               int col_val_count = eina_list_count(column_names);
+               Eina_List* row_vals = NULL;
+               for(int col = 0; col < col_val_count ; col++) {
+                       char* col_type = eina_list_nth(column_types, col);
+                       if(!strcmp(col_type, "INTEGER") || !strcmp(col_type, "INTEGER PRIMARY KEY NOT NULL")) {
+                               int temp = sqlite3_column_int64(stmt, col);
+                               int* val_int = (int*)malloc(sizeof(int));
+                               *val_int = temp;
+                               row_vals = eina_list_append(row_vals, val_int);
+                       } else if(!strcmp(col_type, "TEXT") || !strcmp(col_type, "TEXT PRIMARY KEY NOT NULL")) {
+                               char* val_text = strdup(sqlite3_column_text(stmt, col));
+                               row_vals = eina_list_append(row_vals, val_text);
+                       }
+               }
+               query_vals = eina_list_append(query_vals, row_vals);
+       }
+
+       free(var_query);
+       return query_vals;
+}
+
+Eina_Bool close_database(sqlite3* db)
+{
+       if(db) {
+               sqlite3_close(db);
+               return EINA_TRUE;
+       }
+       return EINA_FALSE;
+}
+
diff --git a/tg-engine-service/db_manager/tg_db_manager.h b/tg-engine-service/db_manager/tg_db_manager.h
new file mode 100644 (file)
index 0000000..62ffacd
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+ * tg_db_manager.h
+ *
+ *  Created on: Jun 1, 2015
+ *      Author: sandeep
+ */
+
+#ifndef TG_DB_MANAGER_H_
+#define TG_DB_MANAGER_H_
+
+#include "tg_common.h"
+#include <sqlite3.h>
+
+extern sqlite3* create_database(char* database_name);
+extern Eina_Bool create_table(sqlite3* db, const char* table_name, Eina_List* column_names, Eina_List* column_types);
+extern Eina_Bool insert_table(sqlite3* db, const char* table_name, Eina_List* column_names, Eina_List* column_types, Eina_List* column_values);
+extern Eina_Bool update_table(sqlite3* db, const char* table_name, Eina_List* column_names, Eina_List* column_types, Eina_List* column_values, const char* where_clause);
+extern Eina_Bool get_values_from_table(sqlite3* db, const char* table_name, Eina_List* column_names, int (*callback)(void*,int,char**,char**), const char* where_clause, void* data_to_callback);
+extern Eina_List* get_values_from_table_sync(sqlite3* db, const char* table_name, Eina_List* column_names, Eina_List* column_types, const char* where_clause);
+extern Eina_Bool close_database(sqlite3* db);
+
+#endif /* TG_DB_MANAGER_H_ */
diff --git a/tg-engine-service/inc/logger.h b/tg-engine-service/inc/logger.h
new file mode 100644 (file)
index 0000000..d937055
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * logger.h
+ *
+ *  Created on: Jun 25, 2015
+ *      Author: sandeep
+ */
+
+#ifndef LOGGER_H_
+#define LOGGER_H_
+
+#include <dlog.h>
+
+#ifdef  LOG_TAG
+#undef  LOG_TAG
+#endif
+#define LOG_TAG "hyb_service"
+
+#define MODULE_INFO (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
+
+#define INF(fmt, arg...) dlog_print(DLOG_INFO, \
+        LOG_TAG, "%s: %s(%d) > " fmt, MODULE_INFO, \
+        __func__, __LINE__, ##arg)
+
+#define DBG(fmt, arg...) dlog_print(DLOG_DEBUG, \
+        LOG_TAG, "%s: %s(%d) > " fmt, MODULE_INFO, \
+        __func__, __LINE__, ##arg)
+
+#define WARN(fmt, arg...) dlog_print(DLOG_WARN, \
+        LOG_TAG, "%s: %s(%d) > " fmt, MODULE_INFO, \
+        __func__, __LINE__, ##arg)
+
+#define ERR(fmt, arg...) dlog_print(DLOG_ERROR, \
+        LOG_TAG, "%s: %s(%d) > " fmt, MODULE_INFO, \
+        __func__, __LINE__, ##arg)
+
+#define RETM_IF(expr, fmt, arg...) \
+{ \
+    if (expr) { \
+        ERR(fmt, ##arg); \
+        return; \
+    } \
+}
+
+#define RETVM_IF(expr, val, fmt, arg...) \
+{ \
+    if (expr) { \
+        ERR(fmt, ##arg); \
+        return (val); \
+    } \
+}
+
+#endif /* LOGGER_H_ */
diff --git a/tg-engine-service/inc/server_response.h b/tg-engine-service/inc/server_response.h
new file mode 100644 (file)
index 0000000..9c7b631
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * server_response.h
+ *
+ *  Created on: Jun 26, 2015
+ *      Author: sandeep
+ */
+
+#ifndef SERVER_RESPONSE_H_
+#define SERVER_RESPONSE_H_
+
+#include "tg_engine.h"
+#include <Elementary.h>
+#include <efl_extension.h>
+
+void process_registration_command(char* phone_no, Eina_Bool trough_sms);
+void process_validation_command(char* code);
+void process_send_message_command(int buddy_id, int msg_type, char* msg_data, int type_of_chat);
+void process_send_media_command(int buddy_id, int msg_type, char* file_path);
+void process_media_download_command(int buddy_id, long long media_id);
+void process_add_contacts_command(int size, Eina_List* contact_list);
+void process_new_group_create_command(Eina_List* buddy_ids, const char* group_name, const char* group_icon);
+
+void send_add_contacts_request();
+void send_registration_response(Eina_Bool is_success);
+void send_name_registration_response();
+void send_contacts_load_done_response(Eina_Bool is_success);
+void send_contacts_and_chats_load_done_response(Eina_Bool is_success);
+void send_buddy_profile_pic_updated_response(int buddy_id, char* file_path);
+void send_message_received_response(int from_id, int to_id, long long message_id, int type_of_chat);
+void send_message_sent_to_buddy_response(int buddy_id, int message_id, char* table_name, char* phone, int type_of_chat);
+void send_message_read_by_buddy_response(int buddy_id, int message_id, char* table_name, char* phone, int type_of_chat);
+void send_media_download_completed_response(int buddy_id, long long media_id, const char* filename);
+void send_new_group_added_response(int chat_id);
+void send_chat_profile_pic_updated_response(int chat_id, char* filename);
+void send_contact_updated_response(int buddy_id, char* update_message);
+void send_buddy_status_updated_response(int buddy_id);
+void send_buddy_status_updated_response(int buddy_id);
+void send_buddy_type_notification_response(int buddy_id, char* budy_name, int type_status);
+#endif /* SERVER_RESPONSE_H_ */
diff --git a/tg-engine-service/inc/tg-engine-service.h b/tg-engine-service/inc/tg-engine-service.h
new file mode 100644 (file)
index 0000000..2f262fc
--- /dev/null
@@ -0,0 +1,17 @@
+#ifndef __tg_engine_service_H__
+#define __tg_engine_service_H__
+
+#include <dlog.h>
+#include "tg_common.h"
+
+#ifdef  LOG_TAG
+#undef  LOG_TAG
+#endif
+#define LOG_TAG "tg-engine-service"
+static const char *TELEGRAM_CLIENT_PORT_NAME = "TIZEN_CLIENT_PORT";
+static const char *TELEGRAM_SERVER_PORT_NAME = "TIZEN_SERVER_PORT";
+static const char *TELEGRAM_CLIENT_APP_NAME = "org.tizen.telegramtizen";
+
+extern Eina_Bool event_idler_cb(void *data);
+
+#endif /* __tg-engine-service_H__ */
diff --git a/tg-engine-service/inc/tg_db_wrapper.h b/tg-engine-service/inc/tg_db_wrapper.h
new file mode 100644 (file)
index 0000000..879e7a0
--- /dev/null
@@ -0,0 +1,191 @@
+/*
+ * tg_db_wrapper.h
+ *
+ *  Created on: Jun 26, 2015
+ *      Author: sandeep
+ */
+
+#ifndef TG_DB_WRAPPER_H_
+#define TG_DB_WRAPPER_H_
+#include "tg_db_manager.h"
+#include "tg_engine.h"
+
+#define USER_INFO_TABLE_NAME "user_info_table"
+
+#define USER_INFO_TABLE_USER_ID "user_id"
+#define USER_INFO_TABLE_PRINT_NAME "print_name"
+#define USER_INFO_TABLE_STRUCTURE_VERSION "structure_version"
+#define USER_INFO_TABLE_PHOTO_PATH "photo_path"
+#define USER_INFO_TABLE_PHOTO_ID "photo_id"
+#define USER_INFO_TABLE_FIRST_NAME "first_name"
+#define USER_INFO_TABLE_LAST_NAME "last_name"
+#define USER_INFO_TABLE_PHONE_NO "phone"
+#define USER_INFO_TABLE_ACCESS_HASH "access_hash"
+#define USER_INFO_TABLE_REAL_FIRST_NAME "real_first_name"
+#define USER_INFO_TABLE_REAL_LAST_NAME "real_last_name"
+#define USER_INFO_TABLE_USER_NAME "username"
+#define USER_INFO_TABLE_ONLINE_STATUS "online"
+#define USER_INFO_TABLE_LAST_SEEN_TIME "last_seen"
+
+#define BUDDY_INFO_TABLE_NAME "buddy_info_table"
+
+#define BUDDY_INFO_TABLE_BUDDY_ID "user_id"
+#define BUDDY_INFO_TABLE_PRINT_NAME "print_name"
+#define BUDDY_INFO_TABLE_STRUCTURE_VERSION "structure_version"
+#define BUDDY_INFO_TABLE_PHOTO_PATH "photo_path"
+#define BUDDY_INFO_TABLE_PHOTO_ID "photo_id"
+#define BUDDY_INFO_TABLE_FIRST_NAME "first_name"
+#define BUDDY_INFO_TABLE_LAST_NAME "last_name"
+#define BUDDY_INFO_TABLE_PHONE_NO "phone"
+#define BUDDY_INFO_TABLE_ACCESS_HASH "access_hash"
+#define BUDDY_INFO_TABLE_REAL_FIRST_NAME "real_first_name"
+#define BUDDY_INFO_TABLE_REAL_LAST_NAME "real_last_name"
+#define BUDDY_INFO_TABLE_BUDDY_NAME "username"
+#define BUDDY_INFO_TABLE_ONLINE_STATUS "online"
+#define BUDDY_INFO_TABLE_LAST_SEEN_TIME "last_seen"
+
+#define MEDIA_INFO_TABLE_NAME "media_info_table"
+
+#define MEDIA_INFO_TABLE_MEDIA_ID "media_id"
+#define MEDIA_INFO_TABLE_MEDIA_TYPE "media_type"
+#define MEDIA_INFO_TABLE_ACCESS_HASH "access_hash"
+#define MEDIA_INFO_TABLE_USER_ID "user_id"
+#define MEDIA_INFO_TABLE_DATE "date"
+#define MEDIA_INFO_TABLE_CAPTION "caption"
+#define MEDIA_INFO_TABLE_LONGITUDE "longitude"
+#define MEDIA_INFO_TABLE_LATITUDE "latitude"
+#define MEDIA_INFO_TABLE_SIZES_NUM "sizes_num"
+
+#define MEDIA_INFO_TABLE_PHOTO_TYPE1 "photo_type1" //text
+#define MEDIA_INFO_TABLE_PHOTO_LOC_DC1 "photo_loc_dc1" //int
+#define MEDIA_INFO_TABLE_PHOTO_LOC_VOL1 "photo_loc_vol1" //int
+#define MEDIA_INFO_TABLE_PHOTO_LOC_ID1 "photo_loc_id1" //int
+#define MEDIA_INFO_TABLE_PHOTO_LOC_SECRET1 "photo_loc_secret1" //int
+#define MEDIA_INFO_TABLE_PHOTO_WIDTH1 "photo_width1" //int
+#define MEDIA_INFO_TABLE_PHOTO_HEIGHT1 "photo_height1" //int
+#define MEDIA_INFO_TABLE_PHOTO_SIZE1 "photo_size1" //int
+#define MEDIA_INFO_TABLE_PHOTO_DATA1 "photo_data1" //text
+
+#define MEDIA_INFO_TABLE_PHOTO_TYPE2 "photo_type2" //text
+#define MEDIA_INFO_TABLE_PHOTO_LOC_DC2 "photo_loc_dc2" //int
+#define MEDIA_INFO_TABLE_PHOTO_LOC_VOL2 "photo_loc_vol2" //int
+#define MEDIA_INFO_TABLE_PHOTO_LOC_ID2 "photo_loc_id2" //int
+#define MEDIA_INFO_TABLE_PHOTO_LOC_SECRET2 "photo_loc_secret2" //int
+#define MEDIA_INFO_TABLE_PHOTO_WIDTH2 "photo_width2" //int
+#define MEDIA_INFO_TABLE_PHOTO_HEIGHT2 "photo_height2" //int
+#define MEDIA_INFO_TABLE_PHOTO_SIZE2 "photo_size2" //int
+#define MEDIA_INFO_TABLE_PHOTO_DATA2 "photo_data2" //text
+
+#define MEDIA_INFO_TABLE_PHOTO_TYPE3 "photo_type3" //text
+#define MEDIA_INFO_TABLE_PHOTO_LOC_DC3 "photo_loc_dc3" //int
+#define MEDIA_INFO_TABLE_PHOTO_LOC_VOL3 "photo_loc_vol3" //int
+#define MEDIA_INFO_TABLE_PHOTO_LOC_ID3 "photo_loc_id3" //int
+#define MEDIA_INFO_TABLE_PHOTO_LOC_SECRET3 "photo_loc_secret3" //int
+#define MEDIA_INFO_TABLE_PHOTO_WIDTH3 "photo_width3" //int
+#define MEDIA_INFO_TABLE_PHOTO_HEIGHT3 "photo_height3" //int
+#define MEDIA_INFO_TABLE_PHOTO_SIZE3 "photo_size3" //int
+#define MEDIA_INFO_TABLE_PHOTO_DATA3 "photo_data3" //text
+
+#define MEDIA_INFO_TABLE_PHOTO_TYPE4 "photo_type4" //text
+#define MEDIA_INFO_TABLE_PHOTO_LOC_DC4 "photo_loc_dc4" //int
+#define MEDIA_INFO_TABLE_PHOTO_LOC_VOL4 "photo_loc_vol4" //int
+#define MEDIA_INFO_TABLE_PHOTO_LOC_ID4 "photo_loc_id4" //int
+#define MEDIA_INFO_TABLE_PHOTO_LOC_SECRET4 "photo_loc_secret4" //int
+#define MEDIA_INFO_TABLE_PHOTO_WIDTH4 "photo_width4" //int
+#define MEDIA_INFO_TABLE_PHOTO_HEIGHT4 "photo_height4" //int
+#define MEDIA_INFO_TABLE_PHOTO_SIZE4 "photo_size4" //int
+#define MEDIA_INFO_TABLE_PHOTO_DATA4 "photo_data4" //text
+
+#define MEDIA_INFO_TABLE_PHONE_NO "phone"
+#define MEDIA_INFO_TABLE_FIRST_NAME "first_name"
+#define MEDIA_INFO_TABLE_LAST_NAME "last_name"
+#define MEDIA_INFO_TABLE_FILE_PATH "file_path"
+
+
+#define MESSAGE_INFO_TABLE_MESSAGE_ID "msg_id"
+#define MESSAGE_INFO_TABLE_FLAGS "flags"
+#define MESSAGE_INFO_TABLE_FWD_FROM_ID "fwd_from_id"
+#define MESSAGE_INFO_TABLE_FWD_DATE "fwd_date"
+#define MESSAGE_INFO_TABLE_FROM_ID "from_id"
+#define MESSAGE_INFO_TABLE_TO_ID "to_id"
+#define MESSAGE_INFO_TABLE_OUT_MSG "out"
+#define MESSAGE_INFO_TABLE_UNREAD "unread"
+#define MESSAGE_INFO_TABLE_DATE "date"
+#define MESSAGE_INFO_TABLE_SERVICE "service"
+#define MESSAGE_INFO_TABLE_MESSAGE "message"
+#define MESSAGE_INFO_TABLE_MESSAGE_LENGTH "message_len"
+#define MESSAGE_INFO_TABLE_MEDIA_TYPE "media_type"
+#define MESSAGE_INFO_TABLE_MEDIA_ID "media_id"
+#define MESSAGE_INFO_TABLE_UNIQUE_ID "unique_id"
+
+
+#define CHAT_INFO_TABLE_NAME "chat_info_table"
+
+#define CHAT_INFO_TABLE_CHAT_ID "chat_id"
+#define CHAT_INFO_TABLE_FLAGS "flags"
+#define CHAT_INFO_TABLE_PRINT_TITLE "print_title"
+#define CHAT_INFO_TABLE_STRUCT_VERSION "struct_version"
+#define CHAT_INFO_TABLE_PHOTO_ID "photo_id"
+#define CHAT_INFO_TABLE_PHOTO_PATH "photo_path"
+#define CHAT_INFO_TABLE_TITLE "title"
+#define CHAT_INFO_TABLE_NO_OF_USERS "users_num"
+#define CHAT_INFO_TABLE_USER_LIST_SIZE "user_list_size"
+#define CHAT_INFO_TABLE_USER_LIST_VERSION "user_list_version"
+#define CHAT_INFO_TABLE_INVITER_ID "inviter_id"
+#define CHAT_INFO_TABLE_CHAT_USERS "chat_users"
+#define CHAT_INFO_TABLE_DATE "date"
+#define CHAT_INFO_TABLE_VERSION "version"
+#define CHAT_INFO_TABLE_ADMIN_ID "admin_id"
+
+
+#define PEER_INFO_TABLE_NAME "peer_info_table" //user or group chat or encrypted chat
+
+#define PEER_INFO_TABLE_CHAT_ID "user_id"
+#define PEER_INFO_TABLE_PEER_TYPE "peer_type"
+#define PEER_INFO_TABLE_FLAGS "flags"
+#define PEER_INFO_TABLE_LAST_MESSAGE_ID "message_id"
+#define PEER_INFO_TABLE_LAST_MESSAGE_DATE "message_date"
+#define PEER_INFO_TABLE_PRINT_NAME "print_name"
+#define PEER_INFO_TABLE_STRUCT_VERSION "struct_version"
+#define PEER_INFO_TABLE_NO_OF_UNREAD_MESSAGES "unread_message_count"
+#define PEER_INFO_TABLE_LAST_SEEN_TIME "last_seen"
+
+
+#define TG_DB_COLUMN_INTEGER "INTEGER"
+#define TG_DB_COLUMN_INTEGER_PRIMARY_KEY "INTEGER PRIMARY KEY NOT NULL"
+#define TG_DB_COLUMN_TEXT "TEXT"
+
+
+void create_data_base_tables();
+
+Eina_List* get_registered_user_info();
+
+void insert_buddy_into_db(char* table_name, struct tgl_user* U);
+
+void insert_peer_into_database(tgl_peer_t* UC, int last_msg_id, int unread_count);
+
+void update_buddy_pic_db(char* file_path, char* table_name, int id);
+
+void create_buddy_msg_table(const char* table_name);
+
+void insert_buddy_msg_to_db(struct tgl_message *M);
+
+void insert_msg_into_db(struct tgl_message *M, char* table_name, int unique_id);
+
+void update_msg_into_db(struct tgl_message *M, char* table_name, int unique_id);
+
+void insert_chat_info_to_db(struct tgl_chat *C, char* photo_path);
+
+void update_chat_info_to_db(struct tgl_chat *chat_info, char* photo_path);
+
+Eina_List* get_buddy_info(int buddy_id);
+
+void insert_media_info_to_db(struct tgl_message *M, char* file_path);
+void update_sent_media_info_in_db(struct tgl_message *M, long long unique_val);
+void update_receive_media_info_in_db(long long media_id, char* file_path);
+
+Eina_List* get_image_details_from_db(long long media_id);
+
+Eina_Bool is_chat_id_already_exists(struct tgl_chat *C);
+
+#endif /* TG_DB_WRAPPER_H_ */
diff --git a/tg-engine-service/inc/tg_server.h b/tg-engine-service/inc/tg_server.h
new file mode 100644 (file)
index 0000000..10b7134
--- /dev/null
@@ -0,0 +1,90 @@
+/*
+ * tg_server.h
+ *
+ *  Created on: Jun 25, 2015
+ *      Author: sandeep
+ */
+
+#ifndef TG_SERVER_H_
+#define TG_SERVER_H_
+
+#include <bundle.h>
+
+typedef struct _tg_server tg_server;
+
+/**
+ * @brief Proxy client related message receive callback definition
+ */
+typedef int (*tg_server_callback_func)(void *data, bundle *const msg);
+
+/**
+ * @brief Create proxy client instance
+ * @return Proxy client instance on success, otherwise NULL
+ */
+tg_server *tg_server_create();
+
+/**
+ * @brief Destroy proxy client instance
+ * @param[in]   proxy_cl    Proxy client instance
+ */
+void tg_server_destroy(tg_server *proxy_cl);
+
+/**
+ * @brief Register port for proxy client to receive/send messages
+ * @param[in]   proxy_cl    Proxy client instance
+ * @param[in]   port_name   Port name to set
+ * @return Error code.  SVC_RES_OK if success.
+ *                      SVC_RES_FAIL if fails
+ */
+int tg_server_register_port(tg_server *proxy_cl, const char *port_name);
+
+/**
+ * @brief Register callback function on proxy client message receive
+ * @param[in]   proxy_cl        Proxy client instance
+ * @param[in]   callback_func   Callback function
+ * @param[in]   data            Data set to callback function
+ * @return Error code.  SVC_RES_OK if success.
+ *                      SVC_RES_FAIL if fails
+ */
+int tg_server_register_msg_receive_callback (tg_server *proxy_cl,
+        tg_server_callback_func callback_func,
+        void *data);
+
+/**
+ * @brief Send message by registered port
+ * @param[in]   proxy_cl    Proxy client instance
+ * @param[in]   msg         Message to send
+ * @return Error code.  SVC_RES_OK if success.
+ *                      SVC_RES_FAIL if fails
+ */
+int tg_server_send_message(tg_server *proxy_cl, bundle *const msg);
+
+int _tg_server_set_remote_data(tg_server *proxy_cl, const char *rem_app_name, const char *rem_port_name);
+
+
+struct _tg_server
+{
+    int local_port_id;
+    char *remote_port_name;
+    char *remote_app_name;
+    tg_server_callback_func cb_func;
+    void *cb_data;
+};
+
+typedef enum
+{
+    SVC_RES_OK = 0,
+    SVC_RES_FAIL = -1,
+} svc_result;
+
+typedef enum
+{
+    REQ_OPER_NONE = 0,
+    REQ_OPER_START_TIMER,
+    REQ_OPER_STOP_TIMER,
+    REQ_OPER_SEND_TIMER_EXP_MSG,
+    REQ_OPER_EXIT_APP
+} req_operation;
+
+
+#endif /* TG_SERVER_H_ */
diff --git a/tg-engine-service/mtprotocol/auto-static.h b/tg-engine-service/mtprotocol/auto-static.h
new file mode 100644 (file)
index 0000000..8399f8b
--- /dev/null
@@ -0,0 +1,424 @@
+/*
+ * auto-static.h
+ *
+ *  Created on: May 8, 2015
+ *      Author: sandeep
+ */
+
+#ifndef AUTO_STATIC_H_
+#define AUTO_STATIC_H_
+
+
+#if 0
+#ifndef DISABLE_EXTF
+int cur_token_len;
+char *cur_token;
+int cur_token_real_len;
+int cur_token_quoted;
+int multiline_output = 1;
+int multiline_offset;
+int multiline_offset_size = 2;
+int disable_field_names;
+
+#define expect_token(token,len) \
+               if (len != cur_token_len || memcmp (cur_token, token, cur_token_len)) { return -1; } \
+               local_next_token ();
+
+#define expect_token_ptr(token,len) \
+               if (len != cur_token_len || memcmp (cur_token, token, cur_token_len)) { return 0; } \
+               local_next_token ();
+
+#define expect_token_autocomplete(token,len) \
+               if (cur_token_len == -3 && len >= cur_token_real_len && !memcmp (cur_token, token, cur_token_real_len)) { set_autocomplete_string (token); return -1; }\
+               if (len != cur_token_len || memcmp (cur_token, token, cur_token_len)) { return -1; } \
+               local_next_token ();
+
+#define expect_token_ptr_autocomplete(token,len) \
+               if (cur_token_len == -3 && len >= cur_token_real_len && !memcmp (cur_token, token, cur_token_real_len)) { set_autocomplete_string (token); return 0; }\
+               if (len != cur_token_len || memcmp (cur_token, token, cur_token_len)) { return 0; } \
+               local_next_token ();
+
+
+int autocomplete_mode;
+char *autocomplete_string;
+int (*autocomplete_fun)(const char *, int, int, char **);
+
+void set_autocomplete_string(const char *s)
+{
+       if (autocomplete_string)
+               free (autocomplete_string);
+       autocomplete_string = strdup (s);
+       assert (autocomplete_string);
+       autocomplete_mode = 1;
+}
+
+void tgl_paramed_type_free(struct paramed_type *P)
+{
+       if (ODDP(P)) { return; }
+       if (P->type->params_num) {
+               int i;
+               for(i = 0; i < P->type->params_num; i++) {
+                       tgl_paramed_type_free(P->params[i]);
+               }
+               free(P->params);
+       }
+       free(P->type->id);
+       free(P->type);
+       free(P);
+}
+
+void set_autocomplete_type(int (*f)(const char *, int, int, char **))
+{
+       autocomplete_fun = f;
+       autocomplete_mode = 2;
+}
+
+int is_int(void)
+{
+       if (cur_token_len <= 0)
+               return 0;
+
+       char c = cur_token[cur_token_len];
+       cur_token[cur_token_len] = 0;
+       char *p = 0;
+
+       if (strtoll (cur_token, &p, 10)) {
+
+       }
+       cur_token[cur_token_len] = c;
+       return p == cur_token + cur_token_len;
+}
+
+long long get_int(void)
+{
+       if (cur_token_len <= 0) {
+               return 0;
+       }
+       char c = cur_token[cur_token_len];
+       cur_token[cur_token_len] = 0;
+       char *p = 0;
+
+       long long val = strtoll(cur_token, &p, 0);
+       cur_token[cur_token_len] = c;
+       return val;
+}
+
+int is_double(void)
+{
+       if (cur_token_len <= 0)
+               return 0;
+       char c = cur_token[cur_token_len];
+       cur_token[cur_token_len] = 0;
+       char *p = 0;
+
+       if (strtod(cur_token, &p))      {
+
+       }
+       cur_token[cur_token_len] = c;
+
+       return p == cur_token + cur_token_len;
+}
+
+double get_double(void)
+{
+       if (cur_token_len <= 0)
+               return 0;
+       char c = cur_token[cur_token_len];
+       cur_token[cur_token_len] = 0;
+       char *p = 0;
+
+       double val = strtod(cur_token, &p);
+       cur_token[cur_token_len] = c;
+
+       return val;
+}
+
+struct paramed_type *paramed_type_dup(struct paramed_type *P)
+{
+       if (ODDP (P)) {
+               return P;
+       }
+       struct paramed_type *R = malloc (sizeof (*R));
+       assert (R);
+       R->type = malloc (sizeof (*R->type));
+       assert (R->type);
+       memcpy (R->type, P->type, sizeof (*P->type));
+       R->type->id = strdup (P->type->id);
+       assert (R->type->id);
+
+       if (P->type->params_num) {
+               R->params = malloc (sizeof (void *) * P->type->params_num);
+               assert (R->params);
+               int i;
+               for (i = 0; i < P->type->params_num; i++) {
+                       R->params[i] = paramed_type_dup (P->params[i]);
+               }
+       }
+       return R;
+}
+
+char *buffer_pos, *buffer_end;
+
+int is_wspc(char c)
+{
+       return c <= 32 && c > 0;
+}
+
+void skip_wspc(void)
+{
+       while (buffer_pos < buffer_end && is_wspc(*buffer_pos)) {
+               buffer_pos ++;
+       }
+}
+
+int is_letter(char c)
+{
+       return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '.' || c == '_' || c == '-';
+}
+
+char exp_buffer[1 << 25];
+int exp_buffer_pos;
+
+int is_hex(char c)
+{
+       return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f');
+}
+
+int hex2dec(char c)
+{
+       if (c >= '0' && c <= '9') { return c - '0'; }
+       else { return c - 'a' + 10; }
+}
+
+void expand_backslashed(char *s, int len)
+{
+       int backslashed = 0;
+       exp_buffer_pos = 0;
+       int i = 0;
+       while (i < len) {
+               assert (i + 3 <= (1 << 25));
+               if (backslashed) {
+                       backslashed = 0;
+                       switch (s[i ++]) {
+                       case 'n':
+                               exp_buffer[exp_buffer_pos ++] = '\n';
+                               break;
+                       case 'r':
+                               exp_buffer[exp_buffer_pos ++] = '\r';
+                               break;
+                       case 't':
+                               exp_buffer[exp_buffer_pos ++] = '\t';
+                               break;
+                       case 'b':
+                               exp_buffer[exp_buffer_pos ++] = '\b';
+                               break;
+                       case 'a':
+                               exp_buffer[exp_buffer_pos ++] = '\a';
+                               break;
+                       case '\\':
+                               exp_buffer[exp_buffer_pos ++] = '\\';
+                               break;
+                       case 'x':
+                               if (i + 2 > len || !is_hex(s[i]) || !is_hex (s[i + 1])) {
+                                       exp_buffer_pos = -1;
+                                       return;
+                               }
+                               exp_buffer[exp_buffer_pos ++] = hex2dec (s[i]) * 16 + hex2dec(s[i + 1]);
+                               i += 2;
+                               break;
+                       default:
+                               break;
+                       }
+               } else {
+                       if (s[i] == '\\') {
+                               backslashed = 1;
+                               i ++;
+                       } else {
+                               exp_buffer[exp_buffer_pos ++] = s[i ++];
+                       }
+               }
+       }
+}
+
+void local_next_token(void)
+{
+       skip_wspc();
+       cur_token_quoted = 0;
+
+       if (buffer_pos >= buffer_end) {
+               cur_token_len = -3;
+               cur_token_real_len = 0;
+               return;
+       }
+
+       char c = *buffer_pos;
+
+       if (is_letter(c)) {
+               cur_token = buffer_pos;
+               while (buffer_pos < buffer_end && is_letter (*buffer_pos)) {
+                       buffer_pos ++;
+               }
+               if (buffer_pos < buffer_end) {
+                       cur_token_len = buffer_pos - cur_token;
+               } else {
+                       cur_token_real_len = buffer_pos - cur_token;
+                       cur_token_len = -3;
+               }
+               return;
+       } else if (c == '"') {
+               cur_token_quoted = 1;
+               cur_token = buffer_pos ++;
+               int backslashed = 0;
+               while (buffer_pos < buffer_end && (*buffer_pos != '"' || backslashed)) {
+                       if (*buffer_pos == '\\') {
+                               backslashed ^= 1;
+                       } else {
+                               backslashed = 0;
+                       }
+                       buffer_pos ++;
+               }
+               if (*buffer_pos == '"') {
+                       buffer_pos ++;
+                       expand_backslashed(cur_token + 1, buffer_pos - cur_token - 2);
+                       if (exp_buffer_pos < 0) {
+                               cur_token_len = -2;
+                       } else {
+                               cur_token_len = exp_buffer_pos;
+                               cur_token = exp_buffer;
+                       }
+               } else {
+                       cur_token_len = -2;
+               }
+               return;
+       } else {
+               if (c) {
+                       cur_token = buffer_pos ++;
+                       cur_token_len = 1;
+               } else {
+                       cur_token_len = -3;
+                       cur_token_real_len = 0;
+               }
+       }
+}
+
+#define MAX_FVARS 100
+struct paramed_type *fvars[MAX_FVARS];
+int fvars_pos;
+
+void add_var_to_be_freed(struct paramed_type *P)
+{
+       assert (fvars_pos < MAX_FVARS);
+       fvars[fvars_pos ++] = P;
+}
+
+void free_vars_to_be_freed (void)
+{
+       int i;
+       for (i = 0; i < fvars_pos; i++) {
+               tgl_paramed_type_free (fvars[i]);
+       }
+       fvars_pos = 0;
+}
+
+#define OUT_BUF_SIZE (1 << 25)
+char out_buf[OUT_BUF_SIZE];
+int out_buf_pos;
+
+#define eprintf(...) \
+               do { \
+                       out_buf_pos += snprintf (out_buf + out_buf_pos, OUT_BUF_SIZE - out_buf_pos, __VA_ARGS__);\
+                       assert (out_buf_pos < OUT_BUF_SIZE);\
+               } while (0)\
+
+int valid_utf8_char(const char *str)
+{
+       unsigned char c = (unsigned char) *str;
+       int n = 0;
+
+       if ((c & 0x80) == 0x00) {
+               n = 0;
+       } else if ((c & 0xe0) == 0xc0) {
+               n = 1;
+       } else if ((c & 0xf0) == 0xe0) {
+               n = 2;
+       } else if ((c & 0xf8) == 0xf0) {
+               n = 3;
+       } else if ((c & 0xfc) == 0xf8) {
+               n = 4;
+       } else if ((c & 0xfe) == 0xfc) {
+               n = 5;
+       } else {
+               return -1;
+       }
+
+       int i;
+       for (i = 0; i < n; i ++) {
+               if ((((unsigned char)(str[i + 1])) & 0xc0) != 0x80) {
+                       return -1;
+               }
+       }
+       return n + 1;
+}
+
+void print_escaped_string(const char *str, int len)
+{
+       eprintf ("\"");
+       const char *end = str + len;
+       while (str < end) {
+               int n = valid_utf8_char (str);
+               if (n < 0) {
+                       eprintf ("\\x%02x", (int)(unsigned char)*str);
+                       str ++;
+               } else if (n >= 2) {
+                       int i;
+                       for (i = 0; i < n; i++) {
+                               eprintf ("%c", *(str ++));
+                       }
+               } else if (((unsigned char)*str) >= ' ' && *str != '"' && *str != '\\') {
+                       eprintf ("%c", *str);
+                       str ++;
+               } else {
+                       switch (*str) {
+                       case '\n':
+                               eprintf("\\n");
+                               break;
+                       case '\r':
+                               eprintf("\\r");
+                               break;
+                       case '\t':
+                               eprintf("\\t");
+                               break;
+                       case '\b':
+                               eprintf("\\b");
+                               break;
+                       case '\a':
+                               eprintf("\\a");
+                               break;
+                       case '\\':
+                               eprintf ("\\\\");
+                               break;
+                       case '"':
+                               eprintf ("\\\"");
+                               break;
+                       default:
+                               eprintf ("\\x%02x", (int)(unsigned char)*str);
+                               break;
+                       }
+                       str ++;
+               }
+       }
+       eprintf ("\"");
+}
+
+void print_offset(void)
+{
+       int i;
+       for (i = 0; i < multiline_offset; i++) {
+               eprintf (" ");
+       }
+}
+#endif
+
+#endif
+
+#endif /* AUTO_STATIC_H_ */
diff --git a/tg-engine-service/mtprotocol/auto.h b/tg-engine-service/mtprotocol/auto.h
new file mode 100644 (file)
index 0000000..7047147
--- /dev/null
@@ -0,0 +1,48 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Vitaly Valtman 2014-2015
+*/
+#ifndef __AUTO_H__
+#define __AUTO_H__
+
+struct tl_type_descr {
+  unsigned name;
+  char *id;
+  int params_num;
+  long long params_types;
+};
+
+struct paramed_type {
+  struct tl_type_descr *type;
+  struct paramed_type **params;
+};
+
+#define NAME_ARRAY 0x89932ad9
+
+#define TYPE_TO_PARAM(NAME) (&(struct paramed_type) {.type = &tl_type_## NAME, .params=0})
+#define TYPE_TO_PARAM_1(NAME,PARAM1) (&(struct paramed_type) {.type = &tl_type_## NAME, .params=(struct paramed_type *[1]){PARAM1}})
+#define ODDP(x) (((long)(x)) & 1)
+#define EVENP(x) (!ODDP(x))
+#define INT2PTR(x) (void *)(long)(((long)x) * 2 + 1)
+#define PTR2INT(x) ((((long)x) - 1) / 2)
+
+void tgl_paramed_type_free(struct paramed_type *P);
+
+#include "auto/auto-header.h"
+
+#endif
diff --git a/tg-engine-service/mtprotocol/auto/auto-header.h b/tg-engine-service/mtprotocol/auto/auto-header.h
new file mode 100644 (file)
index 0000000..d8b38f0
--- /dev/null
@@ -0,0 +1,5052 @@
+#ifndef AUTO_HEADER_H
+#define AUTO_HEADER_H
+
+int skip_constructor_account_days_t_t_l (struct paramed_type *T);
+int store_constructor_account_days_t_t_l (struct paramed_type *T);
+int fetch_constructor_account_days_t_t_l (struct paramed_type *T);
+int autocomplete_constructor_account_days_t_t_l (struct paramed_type *T);
+int skip_constructor_audio_empty (struct paramed_type *T);
+int store_constructor_audio_empty (struct paramed_type *T);
+int fetch_constructor_audio_empty (struct paramed_type *T);
+int autocomplete_constructor_audio_empty (struct paramed_type *T);
+int skip_constructor_audio (struct paramed_type *T);
+int store_constructor_audio (struct paramed_type *T);
+int fetch_constructor_audio (struct paramed_type *T);
+int autocomplete_constructor_audio (struct paramed_type *T);
+int skip_constructor_bool_false (struct paramed_type *T);
+int store_constructor_bool_false (struct paramed_type *T);
+int fetch_constructor_bool_false (struct paramed_type *T);
+int autocomplete_constructor_bool_false (struct paramed_type *T);
+int skip_constructor_bool_true (struct paramed_type *T);
+int store_constructor_bool_true (struct paramed_type *T);
+int fetch_constructor_bool_true (struct paramed_type *T);
+int autocomplete_constructor_bool_true (struct paramed_type *T);
+int skip_constructor_bytes (struct paramed_type *T);
+int store_constructor_bytes (struct paramed_type *T);
+int fetch_constructor_bytes (struct paramed_type *T);
+int autocomplete_constructor_bytes (struct paramed_type *T);
+int skip_constructor_chat_empty (struct paramed_type *T);
+int store_constructor_chat_empty (struct paramed_type *T);
+int fetch_constructor_chat_empty (struct paramed_type *T);
+int autocomplete_constructor_chat_empty (struct paramed_type *T);
+int skip_constructor_chat (struct paramed_type *T);
+int store_constructor_chat (struct paramed_type *T);
+int fetch_constructor_chat (struct paramed_type *T);
+int autocomplete_constructor_chat (struct paramed_type *T);
+int skip_constructor_chat_forbidden (struct paramed_type *T);
+int store_constructor_chat_forbidden (struct paramed_type *T);
+int fetch_constructor_chat_forbidden (struct paramed_type *T);
+int autocomplete_constructor_chat_forbidden (struct paramed_type *T);
+int skip_constructor_geo_chat (struct paramed_type *T);
+int store_constructor_geo_chat (struct paramed_type *T);
+int fetch_constructor_geo_chat (struct paramed_type *T);
+int autocomplete_constructor_geo_chat (struct paramed_type *T);
+int skip_constructor_chat_full (struct paramed_type *T);
+int store_constructor_chat_full (struct paramed_type *T);
+int fetch_constructor_chat_full (struct paramed_type *T);
+int autocomplete_constructor_chat_full (struct paramed_type *T);
+int skip_constructor_chat_located (struct paramed_type *T);
+int store_constructor_chat_located (struct paramed_type *T);
+int fetch_constructor_chat_located (struct paramed_type *T);
+int autocomplete_constructor_chat_located (struct paramed_type *T);
+int skip_constructor_chat_participant (struct paramed_type *T);
+int store_constructor_chat_participant (struct paramed_type *T);
+int fetch_constructor_chat_participant (struct paramed_type *T);
+int autocomplete_constructor_chat_participant (struct paramed_type *T);
+int skip_constructor_chat_participants_forbidden (struct paramed_type *T);
+int store_constructor_chat_participants_forbidden (struct paramed_type *T);
+int fetch_constructor_chat_participants_forbidden (struct paramed_type *T);
+int autocomplete_constructor_chat_participants_forbidden (struct paramed_type *T);
+int skip_constructor_chat_participants (struct paramed_type *T);
+int store_constructor_chat_participants (struct paramed_type *T);
+int fetch_constructor_chat_participants (struct paramed_type *T);
+int autocomplete_constructor_chat_participants (struct paramed_type *T);
+int skip_constructor_chat_photo_empty (struct paramed_type *T);
+int store_constructor_chat_photo_empty (struct paramed_type *T);
+int fetch_constructor_chat_photo_empty (struct paramed_type *T);
+int autocomplete_constructor_chat_photo_empty (struct paramed_type *T);
+int skip_constructor_chat_photo (struct paramed_type *T);
+int store_constructor_chat_photo (struct paramed_type *T);
+int fetch_constructor_chat_photo (struct paramed_type *T);
+int autocomplete_constructor_chat_photo (struct paramed_type *T);
+int skip_constructor_client_d_h_inner_data (struct paramed_type *T);
+int store_constructor_client_d_h_inner_data (struct paramed_type *T);
+int fetch_constructor_client_d_h_inner_data (struct paramed_type *T);
+int autocomplete_constructor_client_d_h_inner_data (struct paramed_type *T);
+int skip_constructor_config (struct paramed_type *T);
+int store_constructor_config (struct paramed_type *T);
+int fetch_constructor_config (struct paramed_type *T);
+int autocomplete_constructor_config (struct paramed_type *T);
+int skip_constructor_contact (struct paramed_type *T);
+int store_constructor_contact (struct paramed_type *T);
+int fetch_constructor_contact (struct paramed_type *T);
+int autocomplete_constructor_contact (struct paramed_type *T);
+int skip_constructor_contact_blocked (struct paramed_type *T);
+int store_constructor_contact_blocked (struct paramed_type *T);
+int fetch_constructor_contact_blocked (struct paramed_type *T);
+int autocomplete_constructor_contact_blocked (struct paramed_type *T);
+int skip_constructor_contact_found (struct paramed_type *T);
+int store_constructor_contact_found (struct paramed_type *T);
+int fetch_constructor_contact_found (struct paramed_type *T);
+int autocomplete_constructor_contact_found (struct paramed_type *T);
+int skip_constructor_contact_status (struct paramed_type *T);
+int store_constructor_contact_status (struct paramed_type *T);
+int fetch_constructor_contact_status (struct paramed_type *T);
+int autocomplete_constructor_contact_status (struct paramed_type *T);
+int skip_constructor_contact_suggested (struct paramed_type *T);
+int store_constructor_contact_suggested (struct paramed_type *T);
+int fetch_constructor_contact_suggested (struct paramed_type *T);
+int autocomplete_constructor_contact_suggested (struct paramed_type *T);
+int skip_constructor_dc_option (struct paramed_type *T);
+int store_constructor_dc_option (struct paramed_type *T);
+int fetch_constructor_dc_option (struct paramed_type *T);
+int autocomplete_constructor_dc_option (struct paramed_type *T);
+int skip_constructor_decrypted_message_l16 (struct paramed_type *T);
+int store_constructor_decrypted_message_l16 (struct paramed_type *T);
+int fetch_constructor_decrypted_message_l16 (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_l16 (struct paramed_type *T);
+int skip_constructor_decrypted_message_service_l16 (struct paramed_type *T);
+int store_constructor_decrypted_message_service_l16 (struct paramed_type *T);
+int fetch_constructor_decrypted_message_service_l16 (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_service_l16 (struct paramed_type *T);
+int skip_constructor_decrypted_message (struct paramed_type *T);
+int store_constructor_decrypted_message (struct paramed_type *T);
+int fetch_constructor_decrypted_message (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message (struct paramed_type *T);
+int skip_constructor_decrypted_message_service (struct paramed_type *T);
+int store_constructor_decrypted_message_service (struct paramed_type *T);
+int fetch_constructor_decrypted_message_service (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_service (struct paramed_type *T);
+int skip_constructor_decrypted_message_action_set_message_t_t_l (struct paramed_type *T);
+int store_constructor_decrypted_message_action_set_message_t_t_l (struct paramed_type *T);
+int fetch_constructor_decrypted_message_action_set_message_t_t_l (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_action_set_message_t_t_l (struct paramed_type *T);
+int skip_constructor_decrypted_message_action_read_messages (struct paramed_type *T);
+int store_constructor_decrypted_message_action_read_messages (struct paramed_type *T);
+int fetch_constructor_decrypted_message_action_read_messages (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_action_read_messages (struct paramed_type *T);
+int skip_constructor_decrypted_message_action_delete_messages (struct paramed_type *T);
+int store_constructor_decrypted_message_action_delete_messages (struct paramed_type *T);
+int fetch_constructor_decrypted_message_action_delete_messages (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_action_delete_messages (struct paramed_type *T);
+int skip_constructor_decrypted_message_action_screenshot_messages (struct paramed_type *T);
+int store_constructor_decrypted_message_action_screenshot_messages (struct paramed_type *T);
+int fetch_constructor_decrypted_message_action_screenshot_messages (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_action_screenshot_messages (struct paramed_type *T);
+int skip_constructor_decrypted_message_action_flush_history (struct paramed_type *T);
+int store_constructor_decrypted_message_action_flush_history (struct paramed_type *T);
+int fetch_constructor_decrypted_message_action_flush_history (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_action_flush_history (struct paramed_type *T);
+int skip_constructor_decrypted_message_action_notify_layer (struct paramed_type *T);
+int store_constructor_decrypted_message_action_notify_layer (struct paramed_type *T);
+int fetch_constructor_decrypted_message_action_notify_layer (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_action_notify_layer (struct paramed_type *T);
+int skip_constructor_decrypted_message_action_resend (struct paramed_type *T);
+int store_constructor_decrypted_message_action_resend (struct paramed_type *T);
+int fetch_constructor_decrypted_message_action_resend (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_action_resend (struct paramed_type *T);
+int skip_constructor_decrypted_message_action_typing (struct paramed_type *T);
+int store_constructor_decrypted_message_action_typing (struct paramed_type *T);
+int fetch_constructor_decrypted_message_action_typing (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_action_typing (struct paramed_type *T);
+int skip_constructor_decrypted_message_action_request_key (struct paramed_type *T);
+int store_constructor_decrypted_message_action_request_key (struct paramed_type *T);
+int fetch_constructor_decrypted_message_action_request_key (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_action_request_key (struct paramed_type *T);
+int skip_constructor_decrypted_message_action_accept_key (struct paramed_type *T);
+int store_constructor_decrypted_message_action_accept_key (struct paramed_type *T);
+int fetch_constructor_decrypted_message_action_accept_key (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_action_accept_key (struct paramed_type *T);
+int skip_constructor_decrypted_message_action_commit_key (struct paramed_type *T);
+int store_constructor_decrypted_message_action_commit_key (struct paramed_type *T);
+int fetch_constructor_decrypted_message_action_commit_key (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_action_commit_key (struct paramed_type *T);
+int skip_constructor_decrypted_message_action_abort_key (struct paramed_type *T);
+int store_constructor_decrypted_message_action_abort_key (struct paramed_type *T);
+int fetch_constructor_decrypted_message_action_abort_key (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_action_abort_key (struct paramed_type *T);
+int skip_constructor_decrypted_message_action_noop (struct paramed_type *T);
+int store_constructor_decrypted_message_action_noop (struct paramed_type *T);
+int fetch_constructor_decrypted_message_action_noop (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_action_noop (struct paramed_type *T);
+int skip_constructor_decrypted_message_layer (struct paramed_type *T);
+int store_constructor_decrypted_message_layer (struct paramed_type *T);
+int fetch_constructor_decrypted_message_layer (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_layer (struct paramed_type *T);
+int skip_constructor_decrypted_message_media_empty (struct paramed_type *T);
+int store_constructor_decrypted_message_media_empty (struct paramed_type *T);
+int fetch_constructor_decrypted_message_media_empty (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_media_empty (struct paramed_type *T);
+int skip_constructor_decrypted_message_media_photo (struct paramed_type *T);
+int store_constructor_decrypted_message_media_photo (struct paramed_type *T);
+int fetch_constructor_decrypted_message_media_photo (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_media_photo (struct paramed_type *T);
+int skip_constructor_decrypted_message_media_geo_point (struct paramed_type *T);
+int store_constructor_decrypted_message_media_geo_point (struct paramed_type *T);
+int fetch_constructor_decrypted_message_media_geo_point (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_media_geo_point (struct paramed_type *T);
+int skip_constructor_decrypted_message_media_contact (struct paramed_type *T);
+int store_constructor_decrypted_message_media_contact (struct paramed_type *T);
+int fetch_constructor_decrypted_message_media_contact (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_media_contact (struct paramed_type *T);
+int skip_constructor_decrypted_message_media_document (struct paramed_type *T);
+int store_constructor_decrypted_message_media_document (struct paramed_type *T);
+int fetch_constructor_decrypted_message_media_document (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_media_document (struct paramed_type *T);
+int skip_constructor_decrypted_message_media_video (struct paramed_type *T);
+int store_constructor_decrypted_message_media_video (struct paramed_type *T);
+int fetch_constructor_decrypted_message_media_video (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_media_video (struct paramed_type *T);
+int skip_constructor_decrypted_message_media_audio (struct paramed_type *T);
+int store_constructor_decrypted_message_media_audio (struct paramed_type *T);
+int fetch_constructor_decrypted_message_media_audio (struct paramed_type *T);
+int autocomplete_constructor_decrypted_message_media_audio (struct paramed_type *T);
+int skip_constructor_dialog (struct paramed_type *T);
+int store_constructor_dialog (struct paramed_type *T);
+int fetch_constructor_dialog (struct paramed_type *T);
+int autocomplete_constructor_dialog (struct paramed_type *T);
+int skip_constructor_document_empty (struct paramed_type *T);
+int store_constructor_document_empty (struct paramed_type *T);
+int fetch_constructor_document_empty (struct paramed_type *T);
+int autocomplete_constructor_document_empty (struct paramed_type *T);
+int skip_constructor_document (struct paramed_type *T);
+int store_constructor_document (struct paramed_type *T);
+int fetch_constructor_document (struct paramed_type *T);
+int autocomplete_constructor_document (struct paramed_type *T);
+int skip_constructor_document_l19 (struct paramed_type *T);
+int store_constructor_document_l19 (struct paramed_type *T);
+int fetch_constructor_document_l19 (struct paramed_type *T);
+int autocomplete_constructor_document_l19 (struct paramed_type *T);
+int skip_constructor_document_attribute_image_size (struct paramed_type *T);
+int store_constructor_document_attribute_image_size (struct paramed_type *T);
+int fetch_constructor_document_attribute_image_size (struct paramed_type *T);
+int autocomplete_constructor_document_attribute_image_size (struct paramed_type *T);
+int skip_constructor_document_attribute_animated (struct paramed_type *T);
+int store_constructor_document_attribute_animated (struct paramed_type *T);
+int fetch_constructor_document_attribute_animated (struct paramed_type *T);
+int autocomplete_constructor_document_attribute_animated (struct paramed_type *T);
+int skip_constructor_document_attribute_sticker (struct paramed_type *T);
+int store_constructor_document_attribute_sticker (struct paramed_type *T);
+int fetch_constructor_document_attribute_sticker (struct paramed_type *T);
+int autocomplete_constructor_document_attribute_sticker (struct paramed_type *T);
+int skip_constructor_document_attribute_video (struct paramed_type *T);
+int store_constructor_document_attribute_video (struct paramed_type *T);
+int fetch_constructor_document_attribute_video (struct paramed_type *T);
+int autocomplete_constructor_document_attribute_video (struct paramed_type *T);
+int skip_constructor_document_attribute_audio (struct paramed_type *T);
+int store_constructor_document_attribute_audio (struct paramed_type *T);
+int fetch_constructor_document_attribute_audio (struct paramed_type *T);
+int autocomplete_constructor_document_attribute_audio (struct paramed_type *T);
+int skip_constructor_document_attribute_filename (struct paramed_type *T);
+int store_constructor_document_attribute_filename (struct paramed_type *T);
+int fetch_constructor_document_attribute_filename (struct paramed_type *T);
+int autocomplete_constructor_document_attribute_filename (struct paramed_type *T);
+int skip_constructor_double (struct paramed_type *T);
+int store_constructor_double (struct paramed_type *T);
+int fetch_constructor_double (struct paramed_type *T);
+int autocomplete_constructor_double (struct paramed_type *T);
+int skip_constructor_encrypted_chat_empty (struct paramed_type *T);
+int store_constructor_encrypted_chat_empty (struct paramed_type *T);
+int fetch_constructor_encrypted_chat_empty (struct paramed_type *T);
+int autocomplete_constructor_encrypted_chat_empty (struct paramed_type *T);
+int skip_constructor_encrypted_chat_waiting (struct paramed_type *T);
+int store_constructor_encrypted_chat_waiting (struct paramed_type *T);
+int fetch_constructor_encrypted_chat_waiting (struct paramed_type *T);
+int autocomplete_constructor_encrypted_chat_waiting (struct paramed_type *T);
+int skip_constructor_encrypted_chat_requested (struct paramed_type *T);
+int store_constructor_encrypted_chat_requested (struct paramed_type *T);
+int fetch_constructor_encrypted_chat_requested (struct paramed_type *T);
+int autocomplete_constructor_encrypted_chat_requested (struct paramed_type *T);
+int skip_constructor_encrypted_chat (struct paramed_type *T);
+int store_constructor_encrypted_chat (struct paramed_type *T);
+int fetch_constructor_encrypted_chat (struct paramed_type *T);
+int autocomplete_constructor_encrypted_chat (struct paramed_type *T);
+int skip_constructor_encrypted_chat_discarded (struct paramed_type *T);
+int store_constructor_encrypted_chat_discarded (struct paramed_type *T);
+int fetch_constructor_encrypted_chat_discarded (struct paramed_type *T);
+int autocomplete_constructor_encrypted_chat_discarded (struct paramed_type *T);
+int skip_constructor_encrypted_file_empty (struct paramed_type *T);
+int store_constructor_encrypted_file_empty (struct paramed_type *T);
+int fetch_constructor_encrypted_file_empty (struct paramed_type *T);
+int autocomplete_constructor_encrypted_file_empty (struct paramed_type *T);
+int skip_constructor_encrypted_file (struct paramed_type *T);
+int store_constructor_encrypted_file (struct paramed_type *T);
+int fetch_constructor_encrypted_file (struct paramed_type *T);
+int autocomplete_constructor_encrypted_file (struct paramed_type *T);
+int skip_constructor_encrypted_message (struct paramed_type *T);
+int store_constructor_encrypted_message (struct paramed_type *T);
+int fetch_constructor_encrypted_message (struct paramed_type *T);
+int autocomplete_constructor_encrypted_message (struct paramed_type *T);
+int skip_constructor_encrypted_message_service (struct paramed_type *T);
+int store_constructor_encrypted_message_service (struct paramed_type *T);
+int fetch_constructor_encrypted_message_service (struct paramed_type *T);
+int autocomplete_constructor_encrypted_message_service (struct paramed_type *T);
+int skip_constructor_error (struct paramed_type *T);
+int store_constructor_error (struct paramed_type *T);
+int fetch_constructor_error (struct paramed_type *T);
+int autocomplete_constructor_error (struct paramed_type *T);
+int skip_constructor_file_location_unavailable (struct paramed_type *T);
+int store_constructor_file_location_unavailable (struct paramed_type *T);
+int fetch_constructor_file_location_unavailable (struct paramed_type *T);
+int autocomplete_constructor_file_location_unavailable (struct paramed_type *T);
+int skip_constructor_file_location (struct paramed_type *T);
+int store_constructor_file_location (struct paramed_type *T);
+int fetch_constructor_file_location (struct paramed_type *T);
+int autocomplete_constructor_file_location (struct paramed_type *T);
+int skip_constructor_geo_chat_message_empty (struct paramed_type *T);
+int store_constructor_geo_chat_message_empty (struct paramed_type *T);
+int fetch_constructor_geo_chat_message_empty (struct paramed_type *T);
+int autocomplete_constructor_geo_chat_message_empty (struct paramed_type *T);
+int skip_constructor_geo_chat_message (struct paramed_type *T);
+int store_constructor_geo_chat_message (struct paramed_type *T);
+int fetch_constructor_geo_chat_message (struct paramed_type *T);
+int autocomplete_constructor_geo_chat_message (struct paramed_type *T);
+int skip_constructor_geo_chat_message_service (struct paramed_type *T);
+int store_constructor_geo_chat_message_service (struct paramed_type *T);
+int fetch_constructor_geo_chat_message_service (struct paramed_type *T);
+int autocomplete_constructor_geo_chat_message_service (struct paramed_type *T);
+int skip_constructor_geo_point_empty (struct paramed_type *T);
+int store_constructor_geo_point_empty (struct paramed_type *T);
+int fetch_constructor_geo_point_empty (struct paramed_type *T);
+int autocomplete_constructor_geo_point_empty (struct paramed_type *T);
+int skip_constructor_geo_point (struct paramed_type *T);
+int store_constructor_geo_point (struct paramed_type *T);
+int fetch_constructor_geo_point (struct paramed_type *T);
+int autocomplete_constructor_geo_point (struct paramed_type *T);
+int skip_constructor_imported_contact (struct paramed_type *T);
+int store_constructor_imported_contact (struct paramed_type *T);
+int fetch_constructor_imported_contact (struct paramed_type *T);
+int autocomplete_constructor_imported_contact (struct paramed_type *T);
+int skip_constructor_input_app_event (struct paramed_type *T);
+int store_constructor_input_app_event (struct paramed_type *T);
+int fetch_constructor_input_app_event (struct paramed_type *T);
+int autocomplete_constructor_input_app_event (struct paramed_type *T);
+int skip_constructor_input_audio_empty (struct paramed_type *T);
+int store_constructor_input_audio_empty (struct paramed_type *T);
+int fetch_constructor_input_audio_empty (struct paramed_type *T);
+int autocomplete_constructor_input_audio_empty (struct paramed_type *T);
+int skip_constructor_input_audio (struct paramed_type *T);
+int store_constructor_input_audio (struct paramed_type *T);
+int fetch_constructor_input_audio (struct paramed_type *T);
+int autocomplete_constructor_input_audio (struct paramed_type *T);
+int skip_constructor_input_chat_photo_empty (struct paramed_type *T);
+int store_constructor_input_chat_photo_empty (struct paramed_type *T);
+int fetch_constructor_input_chat_photo_empty (struct paramed_type *T);
+int autocomplete_constructor_input_chat_photo_empty (struct paramed_type *T);
+int skip_constructor_input_chat_uploaded_photo (struct paramed_type *T);
+int store_constructor_input_chat_uploaded_photo (struct paramed_type *T);
+int fetch_constructor_input_chat_uploaded_photo (struct paramed_type *T);
+int autocomplete_constructor_input_chat_uploaded_photo (struct paramed_type *T);
+int skip_constructor_input_chat_photo (struct paramed_type *T);
+int store_constructor_input_chat_photo (struct paramed_type *T);
+int fetch_constructor_input_chat_photo (struct paramed_type *T);
+int autocomplete_constructor_input_chat_photo (struct paramed_type *T);
+int skip_constructor_input_phone_contact (struct paramed_type *T);
+int store_constructor_input_phone_contact (struct paramed_type *T);
+int fetch_constructor_input_phone_contact (struct paramed_type *T);
+int autocomplete_constructor_input_phone_contact (struct paramed_type *T);
+int skip_constructor_input_document_empty (struct paramed_type *T);
+int store_constructor_input_document_empty (struct paramed_type *T);
+int fetch_constructor_input_document_empty (struct paramed_type *T);
+int autocomplete_constructor_input_document_empty (struct paramed_type *T);
+int skip_constructor_input_document (struct paramed_type *T);
+int store_constructor_input_document (struct paramed_type *T);
+int fetch_constructor_input_document (struct paramed_type *T);
+int autocomplete_constructor_input_document (struct paramed_type *T);
+int skip_constructor_input_encrypted_chat (struct paramed_type *T);
+int store_constructor_input_encrypted_chat (struct paramed_type *T);
+int fetch_constructor_input_encrypted_chat (struct paramed_type *T);
+int autocomplete_constructor_input_encrypted_chat (struct paramed_type *T);
+int skip_constructor_input_encrypted_file_empty (struct paramed_type *T);
+int store_constructor_input_encrypted_file_empty (struct paramed_type *T);
+int fetch_constructor_input_encrypted_file_empty (struct paramed_type *T);
+int autocomplete_constructor_input_encrypted_file_empty (struct paramed_type *T);
+int skip_constructor_input_encrypted_file_uploaded (struct paramed_type *T);
+int store_constructor_input_encrypted_file_uploaded (struct paramed_type *T);
+int fetch_constructor_input_encrypted_file_uploaded (struct paramed_type *T);
+int autocomplete_constructor_input_encrypted_file_uploaded (struct paramed_type *T);
+int skip_constructor_input_encrypted_file (struct paramed_type *T);
+int store_constructor_input_encrypted_file (struct paramed_type *T);
+int fetch_constructor_input_encrypted_file (struct paramed_type *T);
+int autocomplete_constructor_input_encrypted_file (struct paramed_type *T);
+int skip_constructor_input_encrypted_file_big_uploaded (struct paramed_type *T);
+int store_constructor_input_encrypted_file_big_uploaded (struct paramed_type *T);
+int fetch_constructor_input_encrypted_file_big_uploaded (struct paramed_type *T);
+int autocomplete_constructor_input_encrypted_file_big_uploaded (struct paramed_type *T);
+int skip_constructor_input_file (struct paramed_type *T);
+int store_constructor_input_file (struct paramed_type *T);
+int fetch_constructor_input_file (struct paramed_type *T);
+int autocomplete_constructor_input_file (struct paramed_type *T);
+int skip_constructor_input_file_big (struct paramed_type *T);
+int store_constructor_input_file_big (struct paramed_type *T);
+int fetch_constructor_input_file_big (struct paramed_type *T);
+int autocomplete_constructor_input_file_big (struct paramed_type *T);
+int skip_constructor_input_file_location (struct paramed_type *T);
+int store_constructor_input_file_location (struct paramed_type *T);
+int fetch_constructor_input_file_location (struct paramed_type *T);
+int autocomplete_constructor_input_file_location (struct paramed_type *T);
+int skip_constructor_input_video_file_location (struct paramed_type *T);
+int store_constructor_input_video_file_location (struct paramed_type *T);
+int fetch_constructor_input_video_file_location (struct paramed_type *T);
+int autocomplete_constructor_input_video_file_location (struct paramed_type *T);
+int skip_constructor_input_encrypted_file_location (struct paramed_type *T);
+int store_constructor_input_encrypted_file_location (struct paramed_type *T);
+int fetch_constructor_input_encrypted_file_location (struct paramed_type *T);
+int autocomplete_constructor_input_encrypted_file_location (struct paramed_type *T);
+int skip_constructor_input_audio_file_location (struct paramed_type *T);
+int store_constructor_input_audio_file_location (struct paramed_type *T);
+int fetch_constructor_input_audio_file_location (struct paramed_type *T);
+int autocomplete_constructor_input_audio_file_location (struct paramed_type *T);
+int skip_constructor_input_document_file_location (struct paramed_type *T);
+int store_constructor_input_document_file_location (struct paramed_type *T);
+int fetch_constructor_input_document_file_location (struct paramed_type *T);
+int autocomplete_constructor_input_document_file_location (struct paramed_type *T);
+int skip_constructor_input_geo_chat (struct paramed_type *T);
+int store_constructor_input_geo_chat (struct paramed_type *T);
+int fetch_constructor_input_geo_chat (struct paramed_type *T);
+int autocomplete_constructor_input_geo_chat (struct paramed_type *T);
+int skip_constructor_input_geo_point_empty (struct paramed_type *T);
+int store_constructor_input_geo_point_empty (struct paramed_type *T);
+int fetch_constructor_input_geo_point_empty (struct paramed_type *T);
+int autocomplete_constructor_input_geo_point_empty (struct paramed_type *T);
+int skip_constructor_input_geo_point (struct paramed_type *T);
+int store_constructor_input_geo_point (struct paramed_type *T);
+int fetch_constructor_input_geo_point (struct paramed_type *T);
+int autocomplete_constructor_input_geo_point (struct paramed_type *T);
+int skip_constructor_input_media_empty (struct paramed_type *T);
+int store_constructor_input_media_empty (struct paramed_type *T);
+int fetch_constructor_input_media_empty (struct paramed_type *T);
+int autocomplete_constructor_input_media_empty (struct paramed_type *T);
+int skip_constructor_input_media_uploaded_photo (struct paramed_type *T);
+int store_constructor_input_media_uploaded_photo (struct paramed_type *T);
+int fetch_constructor_input_media_uploaded_photo (struct paramed_type *T);
+int autocomplete_constructor_input_media_uploaded_photo (struct paramed_type *T);
+int skip_constructor_input_media_photo (struct paramed_type *T);
+int store_constructor_input_media_photo (struct paramed_type *T);
+int fetch_constructor_input_media_photo (struct paramed_type *T);
+int autocomplete_constructor_input_media_photo (struct paramed_type *T);
+int skip_constructor_input_media_geo_point (struct paramed_type *T);
+int store_constructor_input_media_geo_point (struct paramed_type *T);
+int fetch_constructor_input_media_geo_point (struct paramed_type *T);
+int autocomplete_constructor_input_media_geo_point (struct paramed_type *T);
+int skip_constructor_input_media_contact (struct paramed_type *T);
+int store_constructor_input_media_contact (struct paramed_type *T);
+int fetch_constructor_input_media_contact (struct paramed_type *T);
+int autocomplete_constructor_input_media_contact (struct paramed_type *T);
+int skip_constructor_input_media_uploaded_video (struct paramed_type *T);
+int store_constructor_input_media_uploaded_video (struct paramed_type *T);
+int fetch_constructor_input_media_uploaded_video (struct paramed_type *T);
+int autocomplete_constructor_input_media_uploaded_video (struct paramed_type *T);
+int skip_constructor_input_media_uploaded_thumb_video (struct paramed_type *T);
+int store_constructor_input_media_uploaded_thumb_video (struct paramed_type *T);
+int fetch_constructor_input_media_uploaded_thumb_video (struct paramed_type *T);
+int autocomplete_constructor_input_media_uploaded_thumb_video (struct paramed_type *T);
+int skip_constructor_input_media_video (struct paramed_type *T);
+int store_constructor_input_media_video (struct paramed_type *T);
+int fetch_constructor_input_media_video (struct paramed_type *T);
+int autocomplete_constructor_input_media_video (struct paramed_type *T);
+int skip_constructor_input_media_uploaded_audio (struct paramed_type *T);
+int store_constructor_input_media_uploaded_audio (struct paramed_type *T);
+int fetch_constructor_input_media_uploaded_audio (struct paramed_type *T);
+int autocomplete_constructor_input_media_uploaded_audio (struct paramed_type *T);
+int skip_constructor_input_media_audio (struct paramed_type *T);
+int store_constructor_input_media_audio (struct paramed_type *T);
+int fetch_constructor_input_media_audio (struct paramed_type *T);
+int autocomplete_constructor_input_media_audio (struct paramed_type *T);
+int skip_constructor_input_media_uploaded_document (struct paramed_type *T);
+int store_constructor_input_media_uploaded_document (struct paramed_type *T);
+int fetch_constructor_input_media_uploaded_document (struct paramed_type *T);
+int autocomplete_constructor_input_media_uploaded_document (struct paramed_type *T);
+int skip_constructor_input_media_uploaded_thumb_document (struct paramed_type *T);
+int store_constructor_input_media_uploaded_thumb_document (struct paramed_type *T);
+int fetch_constructor_input_media_uploaded_thumb_document (struct paramed_type *T);
+int autocomplete_constructor_input_media_uploaded_thumb_document (struct paramed_type *T);
+int skip_constructor_input_media_document (struct paramed_type *T);
+int store_constructor_input_media_document (struct paramed_type *T);
+int fetch_constructor_input_media_document (struct paramed_type *T);
+int autocomplete_constructor_input_media_document (struct paramed_type *T);
+int skip_constructor_input_notify_peer (struct paramed_type *T);
+int store_constructor_input_notify_peer (struct paramed_type *T);
+int fetch_constructor_input_notify_peer (struct paramed_type *T);
+int autocomplete_constructor_input_notify_peer (struct paramed_type *T);
+int skip_constructor_input_notify_users (struct paramed_type *T);
+int store_constructor_input_notify_users (struct paramed_type *T);
+int fetch_constructor_input_notify_users (struct paramed_type *T);
+int autocomplete_constructor_input_notify_users (struct paramed_type *T);
+int skip_constructor_input_notify_chats (struct paramed_type *T);
+int store_constructor_input_notify_chats (struct paramed_type *T);
+int fetch_constructor_input_notify_chats (struct paramed_type *T);
+int autocomplete_constructor_input_notify_chats (struct paramed_type *T);
+int skip_constructor_input_notify_all (struct paramed_type *T);
+int store_constructor_input_notify_all (struct paramed_type *T);
+int fetch_constructor_input_notify_all (struct paramed_type *T);
+int autocomplete_constructor_input_notify_all (struct paramed_type *T);
+int skip_constructor_input_notify_geo_chat_peer (struct paramed_type *T);
+int store_constructor_input_notify_geo_chat_peer (struct paramed_type *T);
+int fetch_constructor_input_notify_geo_chat_peer (struct paramed_type *T);
+int autocomplete_constructor_input_notify_geo_chat_peer (struct paramed_type *T);
+int skip_constructor_input_peer_empty (struct paramed_type *T);
+int store_constructor_input_peer_empty (struct paramed_type *T);
+int fetch_constructor_input_peer_empty (struct paramed_type *T);
+int autocomplete_constructor_input_peer_empty (struct paramed_type *T);
+int skip_constructor_input_peer_self (struct paramed_type *T);
+int store_constructor_input_peer_self (struct paramed_type *T);
+int fetch_constructor_input_peer_self (struct paramed_type *T);
+int autocomplete_constructor_input_peer_self (struct paramed_type *T);
+int skip_constructor_input_peer_contact (struct paramed_type *T);
+int store_constructor_input_peer_contact (struct paramed_type *T);
+int fetch_constructor_input_peer_contact (struct paramed_type *T);
+int autocomplete_constructor_input_peer_contact (struct paramed_type *T);
+int skip_constructor_input_peer_foreign (struct paramed_type *T);
+int store_constructor_input_peer_foreign (struct paramed_type *T);
+int fetch_constructor_input_peer_foreign (struct paramed_type *T);
+int autocomplete_constructor_input_peer_foreign (struct paramed_type *T);
+int skip_constructor_input_peer_chat (struct paramed_type *T);
+int store_constructor_input_peer_chat (struct paramed_type *T);
+int fetch_constructor_input_peer_chat (struct paramed_type *T);
+int autocomplete_constructor_input_peer_chat (struct paramed_type *T);
+int skip_constructor_input_peer_notify_events_empty (struct paramed_type *T);
+int store_constructor_input_peer_notify_events_empty (struct paramed_type *T);
+int fetch_constructor_input_peer_notify_events_empty (struct paramed_type *T);
+int autocomplete_constructor_input_peer_notify_events_empty (struct paramed_type *T);
+int skip_constructor_input_peer_notify_events_all (struct paramed_type *T);
+int store_constructor_input_peer_notify_events_all (struct paramed_type *T);
+int fetch_constructor_input_peer_notify_events_all (struct paramed_type *T);
+int autocomplete_constructor_input_peer_notify_events_all (struct paramed_type *T);
+int skip_constructor_input_peer_notify_settings (struct paramed_type *T);
+int store_constructor_input_peer_notify_settings (struct paramed_type *T);
+int fetch_constructor_input_peer_notify_settings (struct paramed_type *T);
+int autocomplete_constructor_input_peer_notify_settings (struct paramed_type *T);
+int skip_constructor_input_photo_empty (struct paramed_type *T);
+int store_constructor_input_photo_empty (struct paramed_type *T);
+int fetch_constructor_input_photo_empty (struct paramed_type *T);
+int autocomplete_constructor_input_photo_empty (struct paramed_type *T);
+int skip_constructor_input_photo (struct paramed_type *T);
+int store_constructor_input_photo (struct paramed_type *T);
+int fetch_constructor_input_photo (struct paramed_type *T);
+int autocomplete_constructor_input_photo (struct paramed_type *T);
+int skip_constructor_input_photo_crop_auto (struct paramed_type *T);
+int store_constructor_input_photo_crop_auto (struct paramed_type *T);
+int fetch_constructor_input_photo_crop_auto (struct paramed_type *T);
+int autocomplete_constructor_input_photo_crop_auto (struct paramed_type *T);
+int skip_constructor_input_photo_crop (struct paramed_type *T);
+int store_constructor_input_photo_crop (struct paramed_type *T);
+int fetch_constructor_input_photo_crop (struct paramed_type *T);
+int autocomplete_constructor_input_photo_crop (struct paramed_type *T);
+int skip_constructor_input_privacy_key_status_timestamp (struct paramed_type *T);
+int store_constructor_input_privacy_key_status_timestamp (struct paramed_type *T);
+int fetch_constructor_input_privacy_key_status_timestamp (struct paramed_type *T);
+int autocomplete_constructor_input_privacy_key_status_timestamp (struct paramed_type *T);
+int skip_constructor_input_privacy_value_allow_contacts (struct paramed_type *T);
+int store_constructor_input_privacy_value_allow_contacts (struct paramed_type *T);
+int fetch_constructor_input_privacy_value_allow_contacts (struct paramed_type *T);
+int autocomplete_constructor_input_privacy_value_allow_contacts (struct paramed_type *T);
+int skip_constructor_input_privacy_value_allow_all (struct paramed_type *T);
+int store_constructor_input_privacy_value_allow_all (struct paramed_type *T);
+int fetch_constructor_input_privacy_value_allow_all (struct paramed_type *T);
+int autocomplete_constructor_input_privacy_value_allow_all (struct paramed_type *T);
+int skip_constructor_input_privacy_value_allow_users (struct paramed_type *T);
+int store_constructor_input_privacy_value_allow_users (struct paramed_type *T);
+int fetch_constructor_input_privacy_value_allow_users (struct paramed_type *T);
+int autocomplete_constructor_input_privacy_value_allow_users (struct paramed_type *T);
+int skip_constructor_input_privacy_value_disallow_contacts (struct paramed_type *T);
+int store_constructor_input_privacy_value_disallow_contacts (struct paramed_type *T);
+int fetch_constructor_input_privacy_value_disallow_contacts (struct paramed_type *T);
+int autocomplete_constructor_input_privacy_value_disallow_contacts (struct paramed_type *T);
+int skip_constructor_input_privacy_value_disallow_all (struct paramed_type *T);
+int store_constructor_input_privacy_value_disallow_all (struct paramed_type *T);
+int fetch_constructor_input_privacy_value_disallow_all (struct paramed_type *T);
+int autocomplete_constructor_input_privacy_value_disallow_all (struct paramed_type *T);
+int skip_constructor_input_privacy_value_disallow_users (struct paramed_type *T);
+int store_constructor_input_privacy_value_disallow_users (struct paramed_type *T);
+int fetch_constructor_input_privacy_value_disallow_users (struct paramed_type *T);
+int autocomplete_constructor_input_privacy_value_disallow_users (struct paramed_type *T);
+int skip_constructor_input_user_empty (struct paramed_type *T);
+int store_constructor_input_user_empty (struct paramed_type *T);
+int fetch_constructor_input_user_empty (struct paramed_type *T);
+int autocomplete_constructor_input_user_empty (struct paramed_type *T);
+int skip_constructor_input_user_self (struct paramed_type *T);
+int store_constructor_input_user_self (struct paramed_type *T);
+int fetch_constructor_input_user_self (struct paramed_type *T);
+int autocomplete_constructor_input_user_self (struct paramed_type *T);
+int skip_constructor_input_user_contact (struct paramed_type *T);
+int store_constructor_input_user_contact (struct paramed_type *T);
+int fetch_constructor_input_user_contact (struct paramed_type *T);
+int autocomplete_constructor_input_user_contact (struct paramed_type *T);
+int skip_constructor_input_user_foreign (struct paramed_type *T);
+int store_constructor_input_user_foreign (struct paramed_type *T);
+int fetch_constructor_input_user_foreign (struct paramed_type *T);
+int autocomplete_constructor_input_user_foreign (struct paramed_type *T);
+int skip_constructor_input_video_empty (struct paramed_type *T);
+int store_constructor_input_video_empty (struct paramed_type *T);
+int fetch_constructor_input_video_empty (struct paramed_type *T);
+int autocomplete_constructor_input_video_empty (struct paramed_type *T);
+int skip_constructor_input_video (struct paramed_type *T);
+int store_constructor_input_video (struct paramed_type *T);
+int fetch_constructor_input_video (struct paramed_type *T);
+int autocomplete_constructor_input_video (struct paramed_type *T);
+int skip_constructor_int (struct paramed_type *T);
+int store_constructor_int (struct paramed_type *T);
+int fetch_constructor_int (struct paramed_type *T);
+int autocomplete_constructor_int (struct paramed_type *T);
+int skip_constructor_int128 (struct paramed_type *T);
+int store_constructor_int128 (struct paramed_type *T);
+int fetch_constructor_int128 (struct paramed_type *T);
+int autocomplete_constructor_int128 (struct paramed_type *T);
+int skip_constructor_int256 (struct paramed_type *T);
+int store_constructor_int256 (struct paramed_type *T);
+int fetch_constructor_int256 (struct paramed_type *T);
+int autocomplete_constructor_int256 (struct paramed_type *T);
+int skip_constructor_long (struct paramed_type *T);
+int store_constructor_long (struct paramed_type *T);
+int fetch_constructor_long (struct paramed_type *T);
+int autocomplete_constructor_long (struct paramed_type *T);
+int skip_constructor_message_empty (struct paramed_type *T);
+int store_constructor_message_empty (struct paramed_type *T);
+int fetch_constructor_message_empty (struct paramed_type *T);
+int autocomplete_constructor_message_empty (struct paramed_type *T);
+int skip_constructor_message (struct paramed_type *T);
+int store_constructor_message (struct paramed_type *T);
+int fetch_constructor_message (struct paramed_type *T);
+int autocomplete_constructor_message (struct paramed_type *T);
+int skip_constructor_message_forwarded (struct paramed_type *T);
+int store_constructor_message_forwarded (struct paramed_type *T);
+int fetch_constructor_message_forwarded (struct paramed_type *T);
+int autocomplete_constructor_message_forwarded (struct paramed_type *T);
+int skip_constructor_message_service (struct paramed_type *T);
+int store_constructor_message_service (struct paramed_type *T);
+int fetch_constructor_message_service (struct paramed_type *T);
+int autocomplete_constructor_message_service (struct paramed_type *T);
+int skip_constructor_message_action_empty (struct paramed_type *T);
+int store_constructor_message_action_empty (struct paramed_type *T);
+int fetch_constructor_message_action_empty (struct paramed_type *T);
+int autocomplete_constructor_message_action_empty (struct paramed_type *T);
+int skip_constructor_message_action_chat_create (struct paramed_type *T);
+int store_constructor_message_action_chat_create (struct paramed_type *T);
+int fetch_constructor_message_action_chat_create (struct paramed_type *T);
+int autocomplete_constructor_message_action_chat_create (struct paramed_type *T);
+int skip_constructor_message_action_chat_edit_title (struct paramed_type *T);
+int store_constructor_message_action_chat_edit_title (struct paramed_type *T);
+int fetch_constructor_message_action_chat_edit_title (struct paramed_type *T);
+int autocomplete_constructor_message_action_chat_edit_title (struct paramed_type *T);
+int skip_constructor_message_action_chat_edit_photo (struct paramed_type *T);
+int store_constructor_message_action_chat_edit_photo (struct paramed_type *T);
+int fetch_constructor_message_action_chat_edit_photo (struct paramed_type *T);
+int autocomplete_constructor_message_action_chat_edit_photo (struct paramed_type *T);
+int skip_constructor_message_action_chat_delete_photo (struct paramed_type *T);
+int store_constructor_message_action_chat_delete_photo (struct paramed_type *T);
+int fetch_constructor_message_action_chat_delete_photo (struct paramed_type *T);
+int autocomplete_constructor_message_action_chat_delete_photo (struct paramed_type *T);
+int skip_constructor_message_action_chat_add_user (struct paramed_type *T);
+int store_constructor_message_action_chat_add_user (struct paramed_type *T);
+int fetch_constructor_message_action_chat_add_user (struct paramed_type *T);
+int autocomplete_constructor_message_action_chat_add_user (struct paramed_type *T);
+int skip_constructor_message_action_chat_delete_user (struct paramed_type *T);
+int store_constructor_message_action_chat_delete_user (struct paramed_type *T);
+int fetch_constructor_message_action_chat_delete_user (struct paramed_type *T);
+int autocomplete_constructor_message_action_chat_delete_user (struct paramed_type *T);
+int skip_constructor_message_action_geo_chat_create (struct paramed_type *T);
+int store_constructor_message_action_geo_chat_create (struct paramed_type *T);
+int fetch_constructor_message_action_geo_chat_create (struct paramed_type *T);
+int autocomplete_constructor_message_action_geo_chat_create (struct paramed_type *T);
+int skip_constructor_message_action_geo_chat_checkin (struct paramed_type *T);
+int store_constructor_message_action_geo_chat_checkin (struct paramed_type *T);
+int fetch_constructor_message_action_geo_chat_checkin (struct paramed_type *T);
+int autocomplete_constructor_message_action_geo_chat_checkin (struct paramed_type *T);
+int skip_constructor_message_media_empty (struct paramed_type *T);
+int store_constructor_message_media_empty (struct paramed_type *T);
+int fetch_constructor_message_media_empty (struct paramed_type *T);
+int autocomplete_constructor_message_media_empty (struct paramed_type *T);
+int skip_constructor_message_media_photo (struct paramed_type *T);
+int store_constructor_message_media_photo (struct paramed_type *T);
+int fetch_constructor_message_media_photo (struct paramed_type *T);
+int autocomplete_constructor_message_media_photo (struct paramed_type *T);
+int skip_constructor_message_media_video (struct paramed_type *T);
+int store_constructor_message_media_video (struct paramed_type *T);
+int fetch_constructor_message_media_video (struct paramed_type *T);
+int autocomplete_constructor_message_media_video (struct paramed_type *T);
+int skip_constructor_message_media_geo (struct paramed_type *T);
+int store_constructor_message_media_geo (struct paramed_type *T);
+int fetch_constructor_message_media_geo (struct paramed_type *T);
+int autocomplete_constructor_message_media_geo (struct paramed_type *T);
+int skip_constructor_message_media_contact (struct paramed_type *T);
+int store_constructor_message_media_contact (struct paramed_type *T);
+int fetch_constructor_message_media_contact (struct paramed_type *T);
+int autocomplete_constructor_message_media_contact (struct paramed_type *T);
+int skip_constructor_message_media_unsupported (struct paramed_type *T);
+int store_constructor_message_media_unsupported (struct paramed_type *T);
+int fetch_constructor_message_media_unsupported (struct paramed_type *T);
+int autocomplete_constructor_message_media_unsupported (struct paramed_type *T);
+int skip_constructor_message_media_document (struct paramed_type *T);
+int store_constructor_message_media_document (struct paramed_type *T);
+int fetch_constructor_message_media_document (struct paramed_type *T);
+int autocomplete_constructor_message_media_document (struct paramed_type *T);
+int skip_constructor_message_media_audio (struct paramed_type *T);
+int store_constructor_message_media_audio (struct paramed_type *T);
+int fetch_constructor_message_media_audio (struct paramed_type *T);
+int autocomplete_constructor_message_media_audio (struct paramed_type *T);
+int skip_constructor_input_messages_filter_empty (struct paramed_type *T);
+int store_constructor_input_messages_filter_empty (struct paramed_type *T);
+int fetch_constructor_input_messages_filter_empty (struct paramed_type *T);
+int autocomplete_constructor_input_messages_filter_empty (struct paramed_type *T);
+int skip_constructor_input_messages_filter_photos (struct paramed_type *T);
+int store_constructor_input_messages_filter_photos (struct paramed_type *T);
+int fetch_constructor_input_messages_filter_photos (struct paramed_type *T);
+int autocomplete_constructor_input_messages_filter_photos (struct paramed_type *T);
+int skip_constructor_input_messages_filter_video (struct paramed_type *T);
+int store_constructor_input_messages_filter_video (struct paramed_type *T);
+int fetch_constructor_input_messages_filter_video (struct paramed_type *T);
+int autocomplete_constructor_input_messages_filter_video (struct paramed_type *T);
+int skip_constructor_input_messages_filter_photo_video (struct paramed_type *T);
+int store_constructor_input_messages_filter_photo_video (struct paramed_type *T);
+int fetch_constructor_input_messages_filter_photo_video (struct paramed_type *T);
+int autocomplete_constructor_input_messages_filter_photo_video (struct paramed_type *T);
+int skip_constructor_input_messages_filter_document (struct paramed_type *T);
+int store_constructor_input_messages_filter_document (struct paramed_type *T);
+int fetch_constructor_input_messages_filter_document (struct paramed_type *T);
+int autocomplete_constructor_input_messages_filter_document (struct paramed_type *T);
+int skip_constructor_input_messages_filter_audio (struct paramed_type *T);
+int store_constructor_input_messages_filter_audio (struct paramed_type *T);
+int fetch_constructor_input_messages_filter_audio (struct paramed_type *T);
+int autocomplete_constructor_input_messages_filter_audio (struct paramed_type *T);
+int skip_constructor_nearest_dc (struct paramed_type *T);
+int store_constructor_nearest_dc (struct paramed_type *T);
+int fetch_constructor_nearest_dc (struct paramed_type *T);
+int autocomplete_constructor_nearest_dc (struct paramed_type *T);
+int skip_constructor_notify_peer (struct paramed_type *T);
+int store_constructor_notify_peer (struct paramed_type *T);
+int fetch_constructor_notify_peer (struct paramed_type *T);
+int autocomplete_constructor_notify_peer (struct paramed_type *T);
+int skip_constructor_notify_users (struct paramed_type *T);
+int store_constructor_notify_users (struct paramed_type *T);
+int fetch_constructor_notify_users (struct paramed_type *T);
+int autocomplete_constructor_notify_users (struct paramed_type *T);
+int skip_constructor_notify_chats (struct paramed_type *T);
+int store_constructor_notify_chats (struct paramed_type *T);
+int fetch_constructor_notify_chats (struct paramed_type *T);
+int autocomplete_constructor_notify_chats (struct paramed_type *T);
+int skip_constructor_notify_all (struct paramed_type *T);
+int store_constructor_notify_all (struct paramed_type *T);
+int fetch_constructor_notify_all (struct paramed_type *T);
+int autocomplete_constructor_notify_all (struct paramed_type *T);
+int skip_constructor_null (struct paramed_type *T);
+int store_constructor_null (struct paramed_type *T);
+int fetch_constructor_null (struct paramed_type *T);
+int autocomplete_constructor_null (struct paramed_type *T);
+int skip_constructor_p_q_inner_data (struct paramed_type *T);
+int store_constructor_p_q_inner_data (struct paramed_type *T);
+int fetch_constructor_p_q_inner_data (struct paramed_type *T);
+int autocomplete_constructor_p_q_inner_data (struct paramed_type *T);
+int skip_constructor_p_q_inner_data_temp (struct paramed_type *T);
+int store_constructor_p_q_inner_data_temp (struct paramed_type *T);
+int fetch_constructor_p_q_inner_data_temp (struct paramed_type *T);
+int autocomplete_constructor_p_q_inner_data_temp (struct paramed_type *T);
+int skip_constructor_peer_user (struct paramed_type *T);
+int store_constructor_peer_user (struct paramed_type *T);
+int fetch_constructor_peer_user (struct paramed_type *T);
+int autocomplete_constructor_peer_user (struct paramed_type *T);
+int skip_constructor_peer_chat (struct paramed_type *T);
+int store_constructor_peer_chat (struct paramed_type *T);
+int fetch_constructor_peer_chat (struct paramed_type *T);
+int autocomplete_constructor_peer_chat (struct paramed_type *T);
+int skip_constructor_peer_notify_events_empty (struct paramed_type *T);
+int store_constructor_peer_notify_events_empty (struct paramed_type *T);
+int fetch_constructor_peer_notify_events_empty (struct paramed_type *T);
+int autocomplete_constructor_peer_notify_events_empty (struct paramed_type *T);
+int skip_constructor_peer_notify_events_all (struct paramed_type *T);
+int store_constructor_peer_notify_events_all (struct paramed_type *T);
+int fetch_constructor_peer_notify_events_all (struct paramed_type *T);
+int autocomplete_constructor_peer_notify_events_all (struct paramed_type *T);
+int skip_constructor_peer_notify_settings_empty (struct paramed_type *T);
+int store_constructor_peer_notify_settings_empty (struct paramed_type *T);
+int fetch_constructor_peer_notify_settings_empty (struct paramed_type *T);
+int autocomplete_constructor_peer_notify_settings_empty (struct paramed_type *T);
+int skip_constructor_peer_notify_settings (struct paramed_type *T);
+int store_constructor_peer_notify_settings (struct paramed_type *T);
+int fetch_constructor_peer_notify_settings (struct paramed_type *T);
+int autocomplete_constructor_peer_notify_settings (struct paramed_type *T);
+int skip_constructor_photo_empty (struct paramed_type *T);
+int store_constructor_photo_empty (struct paramed_type *T);
+int fetch_constructor_photo_empty (struct paramed_type *T);
+int autocomplete_constructor_photo_empty (struct paramed_type *T);
+int skip_constructor_photo (struct paramed_type *T);
+int store_constructor_photo (struct paramed_type *T);
+int fetch_constructor_photo (struct paramed_type *T);
+int autocomplete_constructor_photo (struct paramed_type *T);
+int skip_constructor_photo_size_empty (struct paramed_type *T);
+int store_constructor_photo_size_empty (struct paramed_type *T);
+int fetch_constructor_photo_size_empty (struct paramed_type *T);
+int autocomplete_constructor_photo_size_empty (struct paramed_type *T);
+int skip_constructor_photo_size (struct paramed_type *T);
+int store_constructor_photo_size (struct paramed_type *T);
+int fetch_constructor_photo_size (struct paramed_type *T);
+int autocomplete_constructor_photo_size (struct paramed_type *T);
+int skip_constructor_photo_cached_size (struct paramed_type *T);
+int store_constructor_photo_cached_size (struct paramed_type *T);
+int fetch_constructor_photo_cached_size (struct paramed_type *T);
+int autocomplete_constructor_photo_cached_size (struct paramed_type *T);
+int skip_constructor_privacy_key_status_timestamp (struct paramed_type *T);
+int store_constructor_privacy_key_status_timestamp (struct paramed_type *T);
+int fetch_constructor_privacy_key_status_timestamp (struct paramed_type *T);
+int autocomplete_constructor_privacy_key_status_timestamp (struct paramed_type *T);
+int skip_constructor_privacy_value_allow_contacts (struct paramed_type *T);
+int store_constructor_privacy_value_allow_contacts (struct paramed_type *T);
+int fetch_constructor_privacy_value_allow_contacts (struct paramed_type *T);
+int autocomplete_constructor_privacy_value_allow_contacts (struct paramed_type *T);
+int skip_constructor_privacy_value_allow_all (struct paramed_type *T);
+int store_constructor_privacy_value_allow_all (struct paramed_type *T);
+int fetch_constructor_privacy_value_allow_all (struct paramed_type *T);
+int autocomplete_constructor_privacy_value_allow_all (struct paramed_type *T);
+int skip_constructor_privacy_value_allow_users (struct paramed_type *T);
+int store_constructor_privacy_value_allow_users (struct paramed_type *T);
+int fetch_constructor_privacy_value_allow_users (struct paramed_type *T);
+int autocomplete_constructor_privacy_value_allow_users (struct paramed_type *T);
+int skip_constructor_privacy_value_disallow_contacts (struct paramed_type *T);
+int store_constructor_privacy_value_disallow_contacts (struct paramed_type *T);
+int fetch_constructor_privacy_value_disallow_contacts (struct paramed_type *T);
+int autocomplete_constructor_privacy_value_disallow_contacts (struct paramed_type *T);
+int skip_constructor_privacy_value_disallow_all (struct paramed_type *T);
+int store_constructor_privacy_value_disallow_all (struct paramed_type *T);
+int fetch_constructor_privacy_value_disallow_all (struct paramed_type *T);
+int autocomplete_constructor_privacy_value_disallow_all (struct paramed_type *T);
+int skip_constructor_privacy_value_disallow_users (struct paramed_type *T);
+int store_constructor_privacy_value_disallow_users (struct paramed_type *T);
+int fetch_constructor_privacy_value_disallow_users (struct paramed_type *T);
+int autocomplete_constructor_privacy_value_disallow_users (struct paramed_type *T);
+int skip_constructor_res_p_q (struct paramed_type *T);
+int store_constructor_res_p_q (struct paramed_type *T);
+int fetch_constructor_res_p_q (struct paramed_type *T);
+int autocomplete_constructor_res_p_q (struct paramed_type *T);
+int skip_constructor_send_message_typing_action (struct paramed_type *T);
+int store_constructor_send_message_typing_action (struct paramed_type *T);
+int fetch_constructor_send_message_typing_action (struct paramed_type *T);
+int autocomplete_constructor_send_message_typing_action (struct paramed_type *T);
+int skip_constructor_send_message_cancel_action (struct paramed_type *T);
+int store_constructor_send_message_cancel_action (struct paramed_type *T);
+int fetch_constructor_send_message_cancel_action (struct paramed_type *T);
+int autocomplete_constructor_send_message_cancel_action (struct paramed_type *T);
+int skip_constructor_send_message_record_video_action (struct paramed_type *T);
+int store_constructor_send_message_record_video_action (struct paramed_type *T);
+int fetch_constructor_send_message_record_video_action (struct paramed_type *T);
+int autocomplete_constructor_send_message_record_video_action (struct paramed_type *T);
+int skip_constructor_send_message_upload_video_action (struct paramed_type *T);
+int store_constructor_send_message_upload_video_action (struct paramed_type *T);
+int fetch_constructor_send_message_upload_video_action (struct paramed_type *T);
+int autocomplete_constructor_send_message_upload_video_action (struct paramed_type *T);
+int skip_constructor_send_message_record_audio_action (struct paramed_type *T);
+int store_constructor_send_message_record_audio_action (struct paramed_type *T);
+int fetch_constructor_send_message_record_audio_action (struct paramed_type *T);
+int autocomplete_constructor_send_message_record_audio_action (struct paramed_type *T);
+int skip_constructor_send_message_upload_audio_action (struct paramed_type *T);
+int store_constructor_send_message_upload_audio_action (struct paramed_type *T);
+int fetch_constructor_send_message_upload_audio_action (struct paramed_type *T);
+int autocomplete_constructor_send_message_upload_audio_action (struct paramed_type *T);
+int skip_constructor_send_message_upload_photo_action (struct paramed_type *T);
+int store_constructor_send_message_upload_photo_action (struct paramed_type *T);
+int fetch_constructor_send_message_upload_photo_action (struct paramed_type *T);
+int autocomplete_constructor_send_message_upload_photo_action (struct paramed_type *T);
+int skip_constructor_send_message_upload_document_action (struct paramed_type *T);
+int store_constructor_send_message_upload_document_action (struct paramed_type *T);
+int fetch_constructor_send_message_upload_document_action (struct paramed_type *T);
+int autocomplete_constructor_send_message_upload_document_action (struct paramed_type *T);
+int skip_constructor_send_message_geo_location_action (struct paramed_type *T);
+int store_constructor_send_message_geo_location_action (struct paramed_type *T);
+int fetch_constructor_send_message_geo_location_action (struct paramed_type *T);
+int autocomplete_constructor_send_message_geo_location_action (struct paramed_type *T);
+int skip_constructor_send_message_choose_contact_action (struct paramed_type *T);
+int store_constructor_send_message_choose_contact_action (struct paramed_type *T);
+int fetch_constructor_send_message_choose_contact_action (struct paramed_type *T);
+int autocomplete_constructor_send_message_choose_contact_action (struct paramed_type *T);
+int skip_constructor_server_d_h_params_fail (struct paramed_type *T);
+int store_constructor_server_d_h_params_fail (struct paramed_type *T);
+int fetch_constructor_server_d_h_params_fail (struct paramed_type *T);
+int autocomplete_constructor_server_d_h_params_fail (struct paramed_type *T);
+int skip_constructor_server_d_h_params_ok (struct paramed_type *T);
+int store_constructor_server_d_h_params_ok (struct paramed_type *T);
+int fetch_constructor_server_d_h_params_ok (struct paramed_type *T);
+int autocomplete_constructor_server_d_h_params_ok (struct paramed_type *T);
+int skip_constructor_server_d_h_inner_data (struct paramed_type *T);
+int store_constructor_server_d_h_inner_data (struct paramed_type *T);
+int fetch_constructor_server_d_h_inner_data (struct paramed_type *T);
+int autocomplete_constructor_server_d_h_inner_data (struct paramed_type *T);
+int skip_constructor_dh_gen_ok (struct paramed_type *T);
+int store_constructor_dh_gen_ok (struct paramed_type *T);
+int fetch_constructor_dh_gen_ok (struct paramed_type *T);
+int autocomplete_constructor_dh_gen_ok (struct paramed_type *T);
+int skip_constructor_dh_gen_retry (struct paramed_type *T);
+int store_constructor_dh_gen_retry (struct paramed_type *T);
+int fetch_constructor_dh_gen_retry (struct paramed_type *T);
+int autocomplete_constructor_dh_gen_retry (struct paramed_type *T);
+int skip_constructor_dh_gen_fail (struct paramed_type *T);
+int store_constructor_dh_gen_fail (struct paramed_type *T);
+int fetch_constructor_dh_gen_fail (struct paramed_type *T);
+int autocomplete_constructor_dh_gen_fail (struct paramed_type *T);
+int skip_constructor_sticker_pack (struct paramed_type *T);
+int store_constructor_sticker_pack (struct paramed_type *T);
+int fetch_constructor_sticker_pack (struct paramed_type *T);
+int autocomplete_constructor_sticker_pack (struct paramed_type *T);
+int skip_constructor_string (struct paramed_type *T);
+int store_constructor_string (struct paramed_type *T);
+int fetch_constructor_string (struct paramed_type *T);
+int autocomplete_constructor_string (struct paramed_type *T);
+int skip_constructor_update_new_message (struct paramed_type *T);
+int store_constructor_update_new_message (struct paramed_type *T);
+int fetch_constructor_update_new_message (struct paramed_type *T);
+int autocomplete_constructor_update_new_message (struct paramed_type *T);
+int skip_constructor_update_message_i_d (struct paramed_type *T);
+int store_constructor_update_message_i_d (struct paramed_type *T);
+int fetch_constructor_update_message_i_d (struct paramed_type *T);
+int autocomplete_constructor_update_message_i_d (struct paramed_type *T);
+int skip_constructor_update_read_messages (struct paramed_type *T);
+int store_constructor_update_read_messages (struct paramed_type *T);
+int fetch_constructor_update_read_messages (struct paramed_type *T);
+int autocomplete_constructor_update_read_messages (struct paramed_type *T);
+int skip_constructor_update_delete_messages (struct paramed_type *T);
+int store_constructor_update_delete_messages (struct paramed_type *T);
+int fetch_constructor_update_delete_messages (struct paramed_type *T);
+int autocomplete_constructor_update_delete_messages (struct paramed_type *T);
+int skip_constructor_update_restore_messages (struct paramed_type *T);
+int store_constructor_update_restore_messages (struct paramed_type *T);
+int fetch_constructor_update_restore_messages (struct paramed_type *T);
+int autocomplete_constructor_update_restore_messages (struct paramed_type *T);
+int skip_constructor_update_user_typing (struct paramed_type *T);
+int store_constructor_update_user_typing (struct paramed_type *T);
+int fetch_constructor_update_user_typing (struct paramed_type *T);
+int autocomplete_constructor_update_user_typing (struct paramed_type *T);
+int skip_constructor_update_chat_user_typing (struct paramed_type *T);
+int store_constructor_update_chat_user_typing (struct paramed_type *T);
+int fetch_constructor_update_chat_user_typing (struct paramed_type *T);
+int autocomplete_constructor_update_chat_user_typing (struct paramed_type *T);
+int skip_constructor_update_chat_participants (struct paramed_type *T);
+int store_constructor_update_chat_participants (struct paramed_type *T);
+int fetch_constructor_update_chat_participants (struct paramed_type *T);
+int autocomplete_constructor_update_chat_participants (struct paramed_type *T);
+int skip_constructor_update_user_status (struct paramed_type *T);
+int store_constructor_update_user_status (struct paramed_type *T);
+int fetch_constructor_update_user_status (struct paramed_type *T);
+int autocomplete_constructor_update_user_status (struct paramed_type *T);
+int skip_constructor_update_user_name (struct paramed_type *T);
+int store_constructor_update_user_name (struct paramed_type *T);
+int fetch_constructor_update_user_name (struct paramed_type *T);
+int autocomplete_constructor_update_user_name (struct paramed_type *T);
+int skip_constructor_update_user_photo (struct paramed_type *T);
+int store_constructor_update_user_photo (struct paramed_type *T);
+int fetch_constructor_update_user_photo (struct paramed_type *T);
+int autocomplete_constructor_update_user_photo (struct paramed_type *T);
+int skip_constructor_update_contact_registered (struct paramed_type *T);
+int store_constructor_update_contact_registered (struct paramed_type *T);
+int fetch_constructor_update_contact_registered (struct paramed_type *T);
+int autocomplete_constructor_update_contact_registered (struct paramed_type *T);
+int skip_constructor_update_contact_link (struct paramed_type *T);
+int store_constructor_update_contact_link (struct paramed_type *T);
+int fetch_constructor_update_contact_link (struct paramed_type *T);
+int autocomplete_constructor_update_contact_link (struct paramed_type *T);
+int skip_constructor_update_activation (struct paramed_type *T);
+int store_constructor_update_activation (struct paramed_type *T);
+int fetch_constructor_update_activation (struct paramed_type *T);
+int autocomplete_constructor_update_activation (struct paramed_type *T);
+int skip_constructor_update_new_authorization (struct paramed_type *T);
+int store_constructor_update_new_authorization (struct paramed_type *T);
+int fetch_constructor_update_new_authorization (struct paramed_type *T);
+int autocomplete_constructor_update_new_authorization (struct paramed_type *T);
+int skip_constructor_update_new_geo_chat_message (struct paramed_type *T);
+int store_constructor_update_new_geo_chat_message (struct paramed_type *T);
+int fetch_constructor_update_new_geo_chat_message (struct paramed_type *T);
+int autocomplete_constructor_update_new_geo_chat_message (struct paramed_type *T);
+int skip_constructor_update_new_encrypted_message (struct paramed_type *T);
+int store_constructor_update_new_encrypted_message (struct paramed_type *T);
+int fetch_constructor_update_new_encrypted_message (struct paramed_type *T);
+int autocomplete_constructor_update_new_encrypted_message (struct paramed_type *T);
+int skip_constructor_update_encrypted_chat_typing (struct paramed_type *T);
+int store_constructor_update_encrypted_chat_typing (struct paramed_type *T);
+int fetch_constructor_update_encrypted_chat_typing (struct paramed_type *T);
+int autocomplete_constructor_update_encrypted_chat_typing (struct paramed_type *T);
+int skip_constructor_update_encryption (struct paramed_type *T);
+int store_constructor_update_encryption (struct paramed_type *T);
+int fetch_constructor_update_encryption (struct paramed_type *T);
+int autocomplete_constructor_update_encryption (struct paramed_type *T);
+int skip_constructor_update_encrypted_messages_read (struct paramed_type *T);
+int store_constructor_update_encrypted_messages_read (struct paramed_type *T);
+int fetch_constructor_update_encrypted_messages_read (struct paramed_type *T);
+int autocomplete_constructor_update_encrypted_messages_read (struct paramed_type *T);
+int skip_constructor_update_chat_participant_add (struct paramed_type *T);
+int store_constructor_update_chat_participant_add (struct paramed_type *T);
+int fetch_constructor_update_chat_participant_add (struct paramed_type *T);
+int autocomplete_constructor_update_chat_participant_add (struct paramed_type *T);
+int skip_constructor_update_chat_participant_delete (struct paramed_type *T);
+int store_constructor_update_chat_participant_delete (struct paramed_type *T);
+int fetch_constructor_update_chat_participant_delete (struct paramed_type *T);
+int autocomplete_constructor_update_chat_participant_delete (struct paramed_type *T);
+int skip_constructor_update_dc_options (struct paramed_type *T);
+int store_constructor_update_dc_options (struct paramed_type *T);
+int fetch_constructor_update_dc_options (struct paramed_type *T);
+int autocomplete_constructor_update_dc_options (struct paramed_type *T);
+int skip_constructor_update_user_blocked (struct paramed_type *T);
+int store_constructor_update_user_blocked (struct paramed_type *T);
+int fetch_constructor_update_user_blocked (struct paramed_type *T);
+int autocomplete_constructor_update_user_blocked (struct paramed_type *T);
+int skip_constructor_update_notify_settings (struct paramed_type *T);
+int store_constructor_update_notify_settings (struct paramed_type *T);
+int fetch_constructor_update_notify_settings (struct paramed_type *T);
+int autocomplete_constructor_update_notify_settings (struct paramed_type *T);
+int skip_constructor_update_service_notification (struct paramed_type *T);
+int store_constructor_update_service_notification (struct paramed_type *T);
+int fetch_constructor_update_service_notification (struct paramed_type *T);
+int autocomplete_constructor_update_service_notification (struct paramed_type *T);
+int skip_constructor_update_privacy (struct paramed_type *T);
+int store_constructor_update_privacy (struct paramed_type *T);
+int fetch_constructor_update_privacy (struct paramed_type *T);
+int autocomplete_constructor_update_privacy (struct paramed_type *T);
+int skip_constructor_update_user_phone (struct paramed_type *T);
+int store_constructor_update_user_phone (struct paramed_type *T);
+int fetch_constructor_update_user_phone (struct paramed_type *T);
+int autocomplete_constructor_update_user_phone (struct paramed_type *T);
+int skip_constructor_updates_too_long (struct paramed_type *T);
+int store_constructor_updates_too_long (struct paramed_type *T);
+int fetch_constructor_updates_too_long (struct paramed_type *T);
+int autocomplete_constructor_updates_too_long (struct paramed_type *T);
+int skip_constructor_update_short_message (struct paramed_type *T);
+int store_constructor_update_short_message (struct paramed_type *T);
+int fetch_constructor_update_short_message (struct paramed_type *T);
+int autocomplete_constructor_update_short_message (struct paramed_type *T);
+int skip_constructor_update_short_chat_message (struct paramed_type *T);
+int store_constructor_update_short_chat_message (struct paramed_type *T);
+int fetch_constructor_update_short_chat_message (struct paramed_type *T);
+int autocomplete_constructor_update_short_chat_message (struct paramed_type *T);
+int skip_constructor_update_short (struct paramed_type *T);
+int store_constructor_update_short (struct paramed_type *T);
+int fetch_constructor_update_short (struct paramed_type *T);
+int autocomplete_constructor_update_short (struct paramed_type *T);
+int skip_constructor_updates_combined (struct paramed_type *T);
+int store_constructor_updates_combined (struct paramed_type *T);
+int fetch_constructor_updates_combined (struct paramed_type *T);
+int autocomplete_constructor_updates_combined (struct paramed_type *T);
+int skip_constructor_updates (struct paramed_type *T);
+int store_constructor_updates (struct paramed_type *T);
+int fetch_constructor_updates (struct paramed_type *T);
+int autocomplete_constructor_updates (struct paramed_type *T);
+int skip_constructor_user_empty (struct paramed_type *T);
+int store_constructor_user_empty (struct paramed_type *T);
+int fetch_constructor_user_empty (struct paramed_type *T);
+int autocomplete_constructor_user_empty (struct paramed_type *T);
+int skip_constructor_user_self (struct paramed_type *T);
+int store_constructor_user_self (struct paramed_type *T);
+int fetch_constructor_user_self (struct paramed_type *T);
+int autocomplete_constructor_user_self (struct paramed_type *T);
+int skip_constructor_user_contact (struct paramed_type *T);
+int store_constructor_user_contact (struct paramed_type *T);
+int fetch_constructor_user_contact (struct paramed_type *T);
+int autocomplete_constructor_user_contact (struct paramed_type *T);
+int skip_constructor_user_request (struct paramed_type *T);
+int store_constructor_user_request (struct paramed_type *T);
+int fetch_constructor_user_request (struct paramed_type *T);
+int autocomplete_constructor_user_request (struct paramed_type *T);
+int skip_constructor_user_foreign (struct paramed_type *T);
+int store_constructor_user_foreign (struct paramed_type *T);
+int fetch_constructor_user_foreign (struct paramed_type *T);
+int autocomplete_constructor_user_foreign (struct paramed_type *T);
+int skip_constructor_user_deleted (struct paramed_type *T);
+int store_constructor_user_deleted (struct paramed_type *T);
+int fetch_constructor_user_deleted (struct paramed_type *T);
+int autocomplete_constructor_user_deleted (struct paramed_type *T);
+int skip_constructor_user_full (struct paramed_type *T);
+int store_constructor_user_full (struct paramed_type *T);
+int fetch_constructor_user_full (struct paramed_type *T);
+int autocomplete_constructor_user_full (struct paramed_type *T);
+int skip_constructor_user_profile_photo_empty (struct paramed_type *T);
+int store_constructor_user_profile_photo_empty (struct paramed_type *T);
+int fetch_constructor_user_profile_photo_empty (struct paramed_type *T);
+int autocomplete_constructor_user_profile_photo_empty (struct paramed_type *T);
+int skip_constructor_user_profile_photo (struct paramed_type *T);
+int store_constructor_user_profile_photo (struct paramed_type *T);
+int fetch_constructor_user_profile_photo (struct paramed_type *T);
+int autocomplete_constructor_user_profile_photo (struct paramed_type *T);
+int skip_constructor_user_status_empty (struct paramed_type *T);
+int store_constructor_user_status_empty (struct paramed_type *T);
+int fetch_constructor_user_status_empty (struct paramed_type *T);
+int autocomplete_constructor_user_status_empty (struct paramed_type *T);
+int skip_constructor_user_status_online (struct paramed_type *T);
+int store_constructor_user_status_online (struct paramed_type *T);
+int fetch_constructor_user_status_online (struct paramed_type *T);
+int autocomplete_constructor_user_status_online (struct paramed_type *T);
+int skip_constructor_user_status_offline (struct paramed_type *T);
+int store_constructor_user_status_offline (struct paramed_type *T);
+int fetch_constructor_user_status_offline (struct paramed_type *T);
+int autocomplete_constructor_user_status_offline (struct paramed_type *T);
+int skip_constructor_user_status_recently (struct paramed_type *T);
+int store_constructor_user_status_recently (struct paramed_type *T);
+int fetch_constructor_user_status_recently (struct paramed_type *T);
+int autocomplete_constructor_user_status_recently (struct paramed_type *T);
+int skip_constructor_user_status_last_week (struct paramed_type *T);
+int store_constructor_user_status_last_week (struct paramed_type *T);
+int fetch_constructor_user_status_last_week (struct paramed_type *T);
+int autocomplete_constructor_user_status_last_week (struct paramed_type *T);
+int skip_constructor_user_status_last_month (struct paramed_type *T);
+int store_constructor_user_status_last_month (struct paramed_type *T);
+int fetch_constructor_user_status_last_month (struct paramed_type *T);
+int autocomplete_constructor_user_status_last_month (struct paramed_type *T);
+int skip_constructor_vector (struct paramed_type *T);
+int store_constructor_vector (struct paramed_type *T);
+int fetch_constructor_vector (struct paramed_type *T);
+int autocomplete_constructor_vector (struct paramed_type *T);
+int skip_constructor_video_empty (struct paramed_type *T);
+int store_constructor_video_empty (struct paramed_type *T);
+int fetch_constructor_video_empty (struct paramed_type *T);
+int autocomplete_constructor_video_empty (struct paramed_type *T);
+int skip_constructor_video (struct paramed_type *T);
+int store_constructor_video (struct paramed_type *T);
+int fetch_constructor_video (struct paramed_type *T);
+int autocomplete_constructor_video (struct paramed_type *T);
+int skip_constructor_wall_paper (struct paramed_type *T);
+int store_constructor_wall_paper (struct paramed_type *T);
+int fetch_constructor_wall_paper (struct paramed_type *T);
+int autocomplete_constructor_wall_paper (struct paramed_type *T);
+int skip_constructor_wall_paper_solid (struct paramed_type *T);
+int store_constructor_wall_paper_solid (struct paramed_type *T);
+int fetch_constructor_wall_paper_solid (struct paramed_type *T);
+int autocomplete_constructor_wall_paper_solid (struct paramed_type *T);
+int skip_constructor_account_no_password (struct paramed_type *T);
+int store_constructor_account_no_password (struct paramed_type *T);
+int fetch_constructor_account_no_password (struct paramed_type *T);
+int autocomplete_constructor_account_no_password (struct paramed_type *T);
+int skip_constructor_account_password (struct paramed_type *T);
+int store_constructor_account_password (struct paramed_type *T);
+int fetch_constructor_account_password (struct paramed_type *T);
+int autocomplete_constructor_account_password (struct paramed_type *T);
+int skip_constructor_account_privacy_rules (struct paramed_type *T);
+int store_constructor_account_privacy_rules (struct paramed_type *T);
+int fetch_constructor_account_privacy_rules (struct paramed_type *T);
+int autocomplete_constructor_account_privacy_rules (struct paramed_type *T);
+int skip_constructor_account_sent_change_phone_code (struct paramed_type *T);
+int store_constructor_account_sent_change_phone_code (struct paramed_type *T);
+int fetch_constructor_account_sent_change_phone_code (struct paramed_type *T);
+int autocomplete_constructor_account_sent_change_phone_code (struct paramed_type *T);
+int skip_constructor_auth_authorization (struct paramed_type *T);
+int store_constructor_auth_authorization (struct paramed_type *T);
+int fetch_constructor_auth_authorization (struct paramed_type *T);
+int autocomplete_constructor_auth_authorization (struct paramed_type *T);
+int skip_constructor_auth_checked_phone (struct paramed_type *T);
+int store_constructor_auth_checked_phone (struct paramed_type *T);
+int fetch_constructor_auth_checked_phone (struct paramed_type *T);
+int autocomplete_constructor_auth_checked_phone (struct paramed_type *T);
+int skip_constructor_auth_exported_authorization (struct paramed_type *T);
+int store_constructor_auth_exported_authorization (struct paramed_type *T);
+int fetch_constructor_auth_exported_authorization (struct paramed_type *T);
+int autocomplete_constructor_auth_exported_authorization (struct paramed_type *T);
+int skip_constructor_auth_sent_code (struct paramed_type *T);
+int store_constructor_auth_sent_code (struct paramed_type *T);
+int fetch_constructor_auth_sent_code (struct paramed_type *T);
+int autocomplete_constructor_auth_sent_code (struct paramed_type *T);
+int skip_constructor_auth_sent_app_code (struct paramed_type *T);
+int store_constructor_auth_sent_app_code (struct paramed_type *T);
+int fetch_constructor_auth_sent_app_code (struct paramed_type *T);
+int autocomplete_constructor_auth_sent_app_code (struct paramed_type *T);
+int skip_constructor_binlog_chat_participant (struct paramed_type *T);
+int store_constructor_binlog_chat_participant (struct paramed_type *T);
+int fetch_constructor_binlog_chat_participant (struct paramed_type *T);
+int autocomplete_constructor_binlog_chat_participant (struct paramed_type *T);
+int skip_constructor_binlog_file_location (struct paramed_type *T);
+int store_constructor_binlog_file_location (struct paramed_type *T);
+int fetch_constructor_binlog_file_location (struct paramed_type *T);
+int autocomplete_constructor_binlog_file_location (struct paramed_type *T);
+int skip_constructor_binlog_start (struct paramed_type *T);
+int store_constructor_binlog_start (struct paramed_type *T);
+int fetch_constructor_binlog_start (struct paramed_type *T);
+int autocomplete_constructor_binlog_start (struct paramed_type *T);
+int skip_constructor_binlog_dc_option (struct paramed_type *T);
+int store_constructor_binlog_dc_option (struct paramed_type *T);
+int fetch_constructor_binlog_dc_option (struct paramed_type *T);
+int autocomplete_constructor_binlog_dc_option (struct paramed_type *T);
+int skip_constructor_binlog_auth_key (struct paramed_type *T);
+int store_constructor_binlog_auth_key (struct paramed_type *T);
+int fetch_constructor_binlog_auth_key (struct paramed_type *T);
+int autocomplete_constructor_binlog_auth_key (struct paramed_type *T);
+int skip_constructor_binlog_default_dc (struct paramed_type *T);
+int store_constructor_binlog_default_dc (struct paramed_type *T);
+int fetch_constructor_binlog_default_dc (struct paramed_type *T);
+int autocomplete_constructor_binlog_default_dc (struct paramed_type *T);
+int skip_constructor_binlog_our_id (struct paramed_type *T);
+int store_constructor_binlog_our_id (struct paramed_type *T);
+int fetch_constructor_binlog_our_id (struct paramed_type *T);
+int autocomplete_constructor_binlog_our_id (struct paramed_type *T);
+int skip_constructor_binlog_dc_signed (struct paramed_type *T);
+int store_constructor_binlog_dc_signed (struct paramed_type *T);
+int fetch_constructor_binlog_dc_signed (struct paramed_type *T);
+int autocomplete_constructor_binlog_dc_signed (struct paramed_type *T);
+int skip_constructor_binlog_dc_salt (struct paramed_type *T);
+int store_constructor_binlog_dc_salt (struct paramed_type *T);
+int fetch_constructor_binlog_dc_salt (struct paramed_type *T);
+int autocomplete_constructor_binlog_dc_salt (struct paramed_type *T);
+int skip_constructor_binlog_set_dh_params (struct paramed_type *T);
+int store_constructor_binlog_set_dh_params (struct paramed_type *T);
+int fetch_constructor_binlog_set_dh_params (struct paramed_type *T);
+int autocomplete_constructor_binlog_set_dh_params (struct paramed_type *T);
+int skip_constructor_binlog_set_pts (struct paramed_type *T);
+int store_constructor_binlog_set_pts (struct paramed_type *T);
+int fetch_constructor_binlog_set_pts (struct paramed_type *T);
+int autocomplete_constructor_binlog_set_pts (struct paramed_type *T);
+int skip_constructor_binlog_set_qts (struct paramed_type *T);
+int store_constructor_binlog_set_qts (struct paramed_type *T);
+int fetch_constructor_binlog_set_qts (struct paramed_type *T);
+int autocomplete_constructor_binlog_set_qts (struct paramed_type *T);
+int skip_constructor_binlog_set_date (struct paramed_type *T);
+int store_constructor_binlog_set_date (struct paramed_type *T);
+int fetch_constructor_binlog_set_date (struct paramed_type *T);
+int autocomplete_constructor_binlog_set_date (struct paramed_type *T);
+int skip_constructor_binlog_set_seq (struct paramed_type *T);
+int store_constructor_binlog_set_seq (struct paramed_type *T);
+int fetch_constructor_binlog_set_seq (struct paramed_type *T);
+int autocomplete_constructor_binlog_set_seq (struct paramed_type *T);
+int skip_constructor_binlog_user_add (struct paramed_type *T);
+int store_constructor_binlog_user_add (struct paramed_type *T);
+int fetch_constructor_binlog_user_add (struct paramed_type *T);
+int autocomplete_constructor_binlog_user_add (struct paramed_type *T);
+int skip_constructor_binlog_user_delete (struct paramed_type *T);
+int store_constructor_binlog_user_delete (struct paramed_type *T);
+int fetch_constructor_binlog_user_delete (struct paramed_type *T);
+int autocomplete_constructor_binlog_user_delete (struct paramed_type *T);
+int skip_constructor_binlog_user_set_access_hash (struct paramed_type *T);
+int store_constructor_binlog_user_set_access_hash (struct paramed_type *T);
+int fetch_constructor_binlog_user_set_access_hash (struct paramed_type *T);
+int autocomplete_constructor_binlog_user_set_access_hash (struct paramed_type *T);
+int skip_constructor_binlog_user_set_phone (struct paramed_type *T);
+int store_constructor_binlog_user_set_phone (struct paramed_type *T);
+int fetch_constructor_binlog_user_set_phone (struct paramed_type *T);
+int autocomplete_constructor_binlog_user_set_phone (struct paramed_type *T);
+int skip_constructor_binlog_user_set_friend (struct paramed_type *T);
+int store_constructor_binlog_user_set_friend (struct paramed_type *T);
+int fetch_constructor_binlog_user_set_friend (struct paramed_type *T);
+int autocomplete_constructor_binlog_user_set_friend (struct paramed_type *T);
+int skip_constructor_binlog_user_set_full_photo (struct paramed_type *T);
+int store_constructor_binlog_user_set_full_photo (struct paramed_type *T);
+int fetch_constructor_binlog_user_set_full_photo (struct paramed_type *T);
+int autocomplete_constructor_binlog_user_set_full_photo (struct paramed_type *T);
+int skip_constructor_binlog_user_set_blocked (struct paramed_type *T);
+int store_constructor_binlog_user_set_blocked (struct paramed_type *T);
+int fetch_constructor_binlog_user_set_blocked (struct paramed_type *T);
+int autocomplete_constructor_binlog_user_set_blocked (struct paramed_type *T);
+int skip_constructor_binlog_user_set_real_name (struct paramed_type *T);
+int store_constructor_binlog_user_set_real_name (struct paramed_type *T);
+int fetch_constructor_binlog_user_set_real_name (struct paramed_type *T);
+int autocomplete_constructor_binlog_user_set_real_name (struct paramed_type *T);
+int skip_constructor_binlog_user_set_name (struct paramed_type *T);
+int store_constructor_binlog_user_set_name (struct paramed_type *T);
+int fetch_constructor_binlog_user_set_name (struct paramed_type *T);
+int autocomplete_constructor_binlog_user_set_name (struct paramed_type *T);
+int skip_constructor_binlog_user_set_photo (struct paramed_type *T);
+int store_constructor_binlog_user_set_photo (struct paramed_type *T);
+int fetch_constructor_binlog_user_set_photo (struct paramed_type *T);
+int autocomplete_constructor_binlog_user_set_photo (struct paramed_type *T);
+int skip_constructor_binlog_user_set_username (struct paramed_type *T);
+int store_constructor_binlog_user_set_username (struct paramed_type *T);
+int fetch_constructor_binlog_user_set_username (struct paramed_type *T);
+int autocomplete_constructor_binlog_user_set_username (struct paramed_type *T);
+int skip_constructor_binlog_encr_chat_delete (struct paramed_type *T);
+int store_constructor_binlog_encr_chat_delete (struct paramed_type *T);
+int fetch_constructor_binlog_encr_chat_delete (struct paramed_type *T);
+int autocomplete_constructor_binlog_encr_chat_delete (struct paramed_type *T);
+int skip_constructor_binlog_encr_chat_requested (struct paramed_type *T);
+int store_constructor_binlog_encr_chat_requested (struct paramed_type *T);
+int fetch_constructor_binlog_encr_chat_requested (struct paramed_type *T);
+int autocomplete_constructor_binlog_encr_chat_requested (struct paramed_type *T);
+int skip_constructor_binlog_encr_chat_accepted (struct paramed_type *T);
+int store_constructor_binlog_encr_chat_accepted (struct paramed_type *T);
+int fetch_constructor_binlog_encr_chat_accepted (struct paramed_type *T);
+int autocomplete_constructor_binlog_encr_chat_accepted (struct paramed_type *T);
+int skip_constructor_binlog_encr_chat_init (struct paramed_type *T);
+int store_constructor_binlog_encr_chat_init (struct paramed_type *T);
+int fetch_constructor_binlog_encr_chat_init (struct paramed_type *T);
+int autocomplete_constructor_binlog_encr_chat_init (struct paramed_type *T);
+int skip_constructor_binlog_encr_chat_create (struct paramed_type *T);
+int store_constructor_binlog_encr_chat_create (struct paramed_type *T);
+int fetch_constructor_binlog_encr_chat_create (struct paramed_type *T);
+int autocomplete_constructor_binlog_encr_chat_create (struct paramed_type *T);
+int skip_constructor_binlog_encr_chat_set_access_hash (struct paramed_type *T);
+int store_constructor_binlog_encr_chat_set_access_hash (struct paramed_type *T);
+int fetch_constructor_binlog_encr_chat_set_access_hash (struct paramed_type *T);
+int autocomplete_constructor_binlog_encr_chat_set_access_hash (struct paramed_type *T);
+int skip_constructor_binlog_encr_chat_set_date (struct paramed_type *T);
+int store_constructor_binlog_encr_chat_set_date (struct paramed_type *T);
+int fetch_constructor_binlog_encr_chat_set_date (struct paramed_type *T);
+int autocomplete_constructor_binlog_encr_chat_set_date (struct paramed_type *T);
+int skip_constructor_binlog_encr_chat_set_ttl (struct paramed_type *T);
+int store_constructor_binlog_encr_chat_set_ttl (struct paramed_type *T);
+int fetch_constructor_binlog_encr_chat_set_ttl (struct paramed_type *T);
+int autocomplete_constructor_binlog_encr_chat_set_ttl (struct paramed_type *T);
+int skip_constructor_binlog_encr_chat_set_layer (struct paramed_type *T);
+int store_constructor_binlog_encr_chat_set_layer (struct paramed_type *T);
+int fetch_constructor_binlog_encr_chat_set_layer (struct paramed_type *T);
+int autocomplete_constructor_binlog_encr_chat_set_layer (struct paramed_type *T);
+int skip_constructor_binlog_encr_chat_set_state (struct paramed_type *T);
+int store_constructor_binlog_encr_chat_set_state (struct paramed_type *T);
+int fetch_constructor_binlog_encr_chat_set_state (struct paramed_type *T);
+int autocomplete_constructor_binlog_encr_chat_set_state (struct paramed_type *T);
+int skip_constructor_binlog_encr_chat_set_key (struct paramed_type *T);
+int store_constructor_binlog_encr_chat_set_key (struct paramed_type *T);
+int fetch_constructor_binlog_encr_chat_set_key (struct paramed_type *T);
+int autocomplete_constructor_binlog_encr_chat_set_key (struct paramed_type *T);
+int skip_constructor_binlog_encr_chat_set_sha (struct paramed_type *T);
+int store_constructor_binlog_encr_chat_set_sha (struct paramed_type *T);
+int fetch_constructor_binlog_encr_chat_set_sha (struct paramed_type *T);
+int autocomplete_constructor_binlog_encr_chat_set_sha (struct paramed_type *T);
+int skip_constructor_binlog_encr_chat_exchange_request (struct paramed_type *T);
+int store_constructor_binlog_encr_chat_exchange_request (struct paramed_type *T);
+int fetch_constructor_binlog_encr_chat_exchange_request (struct paramed_type *T);
+int autocomplete_constructor_binlog_encr_chat_exchange_request (struct paramed_type *T);
+int skip_constructor_binlog_encr_chat_exchange_accept (struct paramed_type *T);
+int store_constructor_binlog_encr_chat_exchange_accept (struct paramed_type *T);
+int fetch_constructor_binlog_encr_chat_exchange_accept (struct paramed_type *T);
+int autocomplete_constructor_binlog_encr_chat_exchange_accept (struct paramed_type *T);
+int skip_constructor_binlog_encr_chat_exchange_commit (struct paramed_type *T);
+int store_constructor_binlog_encr_chat_exchange_commit (struct paramed_type *T);
+int fetch_constructor_binlog_encr_chat_exchange_commit (struct paramed_type *T);
+int autocomplete_constructor_binlog_encr_chat_exchange_commit (struct paramed_type *T);
+int skip_constructor_binlog_encr_chat_exchange_confirm (struct paramed_type *T);
+int store_constructor_binlog_encr_chat_exchange_confirm (struct paramed_type *T);
+int fetch_constructor_binlog_encr_chat_exchange_confirm (struct paramed_type *T);
+int autocomplete_constructor_binlog_encr_chat_exchange_confirm (struct paramed_type *T);
+int skip_constructor_binlog_encr_chat_exchange_abort (struct paramed_type *T);
+int store_constructor_binlog_encr_chat_exchange_abort (struct paramed_type *T);
+int fetch_constructor_binlog_encr_chat_exchange_abort (struct paramed_type *T);
+int autocomplete_constructor_binlog_encr_chat_exchange_abort (struct paramed_type *T);
+int skip_constructor_binlog_encr_chat_update_seq (struct paramed_type *T);
+int store_constructor_binlog_encr_chat_update_seq (struct paramed_type *T);
+int fetch_constructor_binlog_encr_chat_update_seq (struct paramed_type *T);
+int autocomplete_constructor_binlog_encr_chat_update_seq (struct paramed_type *T);
+int skip_constructor_binlog_encr_chat_set_seq (struct paramed_type *T);
+int store_constructor_binlog_encr_chat_set_seq (struct paramed_type *T);
+int fetch_constructor_binlog_encr_chat_set_seq (struct paramed_type *T);
+int autocomplete_constructor_binlog_encr_chat_set_seq (struct paramed_type *T);
+int skip_constructor_binlog_chat_create (struct paramed_type *T);
+int store_constructor_binlog_chat_create (struct paramed_type *T);
+int fetch_constructor_binlog_chat_create (struct paramed_type *T);
+int autocomplete_constructor_binlog_chat_create (struct paramed_type *T);
+int skip_constructor_binlog_chat_change_flags (struct paramed_type *T);
+int store_constructor_binlog_chat_change_flags (struct paramed_type *T);
+int fetch_constructor_binlog_chat_change_flags (struct paramed_type *T);
+int autocomplete_constructor_binlog_chat_change_flags (struct paramed_type *T);
+int skip_constructor_binlog_chat_set_title (struct paramed_type *T);
+int store_constructor_binlog_chat_set_title (struct paramed_type *T);
+int fetch_constructor_binlog_chat_set_title (struct paramed_type *T);
+int autocomplete_constructor_binlog_chat_set_title (struct paramed_type *T);
+int skip_constructor_binlog_chat_set_photo (struct paramed_type *T);
+int store_constructor_binlog_chat_set_photo (struct paramed_type *T);
+int fetch_constructor_binlog_chat_set_photo (struct paramed_type *T);
+int autocomplete_constructor_binlog_chat_set_photo (struct paramed_type *T);
+int skip_constructor_binlog_chat_set_date (struct paramed_type *T);
+int store_constructor_binlog_chat_set_date (struct paramed_type *T);
+int fetch_constructor_binlog_chat_set_date (struct paramed_type *T);
+int autocomplete_constructor_binlog_chat_set_date (struct paramed_type *T);
+int skip_constructor_binlog_chat_set_version (struct paramed_type *T);
+int store_constructor_binlog_chat_set_version (struct paramed_type *T);
+int fetch_constructor_binlog_chat_set_version (struct paramed_type *T);
+int autocomplete_constructor_binlog_chat_set_version (struct paramed_type *T);
+int skip_constructor_binlog_chat_set_admin (struct paramed_type *T);
+int store_constructor_binlog_chat_set_admin (struct paramed_type *T);
+int fetch_constructor_binlog_chat_set_admin (struct paramed_type *T);
+int autocomplete_constructor_binlog_chat_set_admin (struct paramed_type *T);
+int skip_constructor_binlog_chat_set_participants (struct paramed_type *T);
+int store_constructor_binlog_chat_set_participants (struct paramed_type *T);
+int fetch_constructor_binlog_chat_set_participants (struct paramed_type *T);
+int autocomplete_constructor_binlog_chat_set_participants (struct paramed_type *T);
+int skip_constructor_binlog_chat_set_full_photo (struct paramed_type *T);
+int store_constructor_binlog_chat_set_full_photo (struct paramed_type *T);
+int fetch_constructor_binlog_chat_set_full_photo (struct paramed_type *T);
+int autocomplete_constructor_binlog_chat_set_full_photo (struct paramed_type *T);
+int skip_constructor_binlog_chat_add_participant (struct paramed_type *T);
+int store_constructor_binlog_chat_add_participant (struct paramed_type *T);
+int fetch_constructor_binlog_chat_add_participant (struct paramed_type *T);
+int autocomplete_constructor_binlog_chat_add_participant (struct paramed_type *T);
+int skip_constructor_binlog_chat_del_participant (struct paramed_type *T);
+int store_constructor_binlog_chat_del_participant (struct paramed_type *T);
+int fetch_constructor_binlog_chat_del_participant (struct paramed_type *T);
+int autocomplete_constructor_binlog_chat_del_participant (struct paramed_type *T);
+int skip_constructor_binlog_create_message_text (struct paramed_type *T);
+int store_constructor_binlog_create_message_text (struct paramed_type *T);
+int fetch_constructor_binlog_create_message_text (struct paramed_type *T);
+int autocomplete_constructor_binlog_create_message_text (struct paramed_type *T);
+int skip_constructor_binlog_send_message_text (struct paramed_type *T);
+int store_constructor_binlog_send_message_text (struct paramed_type *T);
+int fetch_constructor_binlog_send_message_text (struct paramed_type *T);
+int autocomplete_constructor_binlog_send_message_text (struct paramed_type *T);
+int skip_constructor_binlog_send_message_action_encr (struct paramed_type *T);
+int store_constructor_binlog_send_message_action_encr (struct paramed_type *T);
+int fetch_constructor_binlog_send_message_action_encr (struct paramed_type *T);
+int autocomplete_constructor_binlog_send_message_action_encr (struct paramed_type *T);
+int skip_constructor_binlog_create_message_text_fwd (struct paramed_type *T);
+int store_constructor_binlog_create_message_text_fwd (struct paramed_type *T);
+int fetch_constructor_binlog_create_message_text_fwd (struct paramed_type *T);
+int autocomplete_constructor_binlog_create_message_text_fwd (struct paramed_type *T);
+int skip_constructor_binlog_create_message_media (struct paramed_type *T);
+int store_constructor_binlog_create_message_media (struct paramed_type *T);
+int fetch_constructor_binlog_create_message_media (struct paramed_type *T);
+int autocomplete_constructor_binlog_create_message_media (struct paramed_type *T);
+int skip_constructor_binlog_create_message_media_encr (struct paramed_type *T);
+int store_constructor_binlog_create_message_media_encr (struct paramed_type *T);
+int fetch_constructor_binlog_create_message_media_encr (struct paramed_type *T);
+int autocomplete_constructor_binlog_create_message_media_encr (struct paramed_type *T);
+int skip_constructor_binlog_create_message_media_encr_pending (struct paramed_type *T);
+int store_constructor_binlog_create_message_media_encr_pending (struct paramed_type *T);
+int fetch_constructor_binlog_create_message_media_encr_pending (struct paramed_type *T);
+int autocomplete_constructor_binlog_create_message_media_encr_pending (struct paramed_type *T);
+int skip_constructor_binlog_create_message_media_encr_sent (struct paramed_type *T);
+int store_constructor_binlog_create_message_media_encr_sent (struct paramed_type *T);
+int fetch_constructor_binlog_create_message_media_encr_sent (struct paramed_type *T);
+int autocomplete_constructor_binlog_create_message_media_encr_sent (struct paramed_type *T);
+int skip_constructor_binlog_create_message_media_fwd (struct paramed_type *T);
+int store_constructor_binlog_create_message_media_fwd (struct paramed_type *T);
+int fetch_constructor_binlog_create_message_media_fwd (struct paramed_type *T);
+int autocomplete_constructor_binlog_create_message_media_fwd (struct paramed_type *T);
+int skip_constructor_binlog_create_message_service (struct paramed_type *T);
+int store_constructor_binlog_create_message_service (struct paramed_type *T);
+int fetch_constructor_binlog_create_message_service (struct paramed_type *T);
+int autocomplete_constructor_binlog_create_message_service (struct paramed_type *T);
+int skip_constructor_binlog_create_message_service_encr (struct paramed_type *T);
+int store_constructor_binlog_create_message_service_encr (struct paramed_type *T);
+int fetch_constructor_binlog_create_message_service_encr (struct paramed_type *T);
+int autocomplete_constructor_binlog_create_message_service_encr (struct paramed_type *T);
+int skip_constructor_binlog_create_message_service_fwd (struct paramed_type *T);
+int store_constructor_binlog_create_message_service_fwd (struct paramed_type *T);
+int fetch_constructor_binlog_create_message_service_fwd (struct paramed_type *T);
+int autocomplete_constructor_binlog_create_message_service_fwd (struct paramed_type *T);
+int skip_constructor_binlog_message_set_unread (struct paramed_type *T);
+int store_constructor_binlog_message_set_unread (struct paramed_type *T);
+int fetch_constructor_binlog_message_set_unread (struct paramed_type *T);
+int autocomplete_constructor_binlog_message_set_unread (struct paramed_type *T);
+int skip_constructor_binlog_message_set_unread_long (struct paramed_type *T);
+int store_constructor_binlog_message_set_unread_long (struct paramed_type *T);
+int fetch_constructor_binlog_message_set_unread_long (struct paramed_type *T);
+int autocomplete_constructor_binlog_message_set_unread_long (struct paramed_type *T);
+int skip_constructor_binlog_set_message_sent (struct paramed_type *T);
+int store_constructor_binlog_set_message_sent (struct paramed_type *T);
+int fetch_constructor_binlog_set_message_sent (struct paramed_type *T);
+int autocomplete_constructor_binlog_set_message_sent (struct paramed_type *T);
+int skip_constructor_binlog_set_msg_id (struct paramed_type *T);
+int store_constructor_binlog_set_msg_id (struct paramed_type *T);
+int fetch_constructor_binlog_set_msg_id (struct paramed_type *T);
+int autocomplete_constructor_binlog_set_msg_id (struct paramed_type *T);
+int skip_constructor_binlog_delete_msg (struct paramed_type *T);
+int store_constructor_binlog_delete_msg (struct paramed_type *T);
+int fetch_constructor_binlog_delete_msg (struct paramed_type *T);
+int autocomplete_constructor_binlog_delete_msg (struct paramed_type *T);
+int skip_constructor_binlog_message_set_outbound (struct paramed_type *T);
+int store_constructor_binlog_message_set_outbound (struct paramed_type *T);
+int fetch_constructor_binlog_message_set_outbound (struct paramed_type *T);
+int autocomplete_constructor_binlog_message_set_outbound (struct paramed_type *T);
+int skip_constructor_binlog_msg_seq_update (struct paramed_type *T);
+int store_constructor_binlog_msg_seq_update (struct paramed_type *T);
+int fetch_constructor_binlog_msg_seq_update (struct paramed_type *T);
+int autocomplete_constructor_binlog_msg_seq_update (struct paramed_type *T);
+int skip_constructor_binlog_msg_update (struct paramed_type *T);
+int store_constructor_binlog_msg_update (struct paramed_type *T);
+int fetch_constructor_binlog_msg_update (struct paramed_type *T);
+int autocomplete_constructor_binlog_msg_update (struct paramed_type *T);
+int skip_constructor_binlog_reset_authorization (struct paramed_type *T);
+int store_constructor_binlog_reset_authorization (struct paramed_type *T);
+int fetch_constructor_binlog_reset_authorization (struct paramed_type *T);
+int autocomplete_constructor_binlog_reset_authorization (struct paramed_type *T);
+int skip_constructor_contacts_blocked (struct paramed_type *T);
+int store_constructor_contacts_blocked (struct paramed_type *T);
+int fetch_constructor_contacts_blocked (struct paramed_type *T);
+int autocomplete_constructor_contacts_blocked (struct paramed_type *T);
+int skip_constructor_contacts_blocked_slice (struct paramed_type *T);
+int store_constructor_contacts_blocked_slice (struct paramed_type *T);
+int fetch_constructor_contacts_blocked_slice (struct paramed_type *T);
+int autocomplete_constructor_contacts_blocked_slice (struct paramed_type *T);
+int skip_constructor_contacts_contacts_not_modified (struct paramed_type *T);
+int store_constructor_contacts_contacts_not_modified (struct paramed_type *T);
+int fetch_constructor_contacts_contacts_not_modified (struct paramed_type *T);
+int autocomplete_constructor_contacts_contacts_not_modified (struct paramed_type *T);
+int skip_constructor_contacts_contacts (struct paramed_type *T);
+int store_constructor_contacts_contacts (struct paramed_type *T);
+int fetch_constructor_contacts_contacts (struct paramed_type *T);
+int autocomplete_constructor_contacts_contacts (struct paramed_type *T);
+int skip_constructor_contacts_foreign_link_unknown (struct paramed_type *T);
+int store_constructor_contacts_foreign_link_unknown (struct paramed_type *T);
+int fetch_constructor_contacts_foreign_link_unknown (struct paramed_type *T);
+int autocomplete_constructor_contacts_foreign_link_unknown (struct paramed_type *T);
+int skip_constructor_contacts_foreign_link_requested (struct paramed_type *T);
+int store_constructor_contacts_foreign_link_requested (struct paramed_type *T);
+int fetch_constructor_contacts_foreign_link_requested (struct paramed_type *T);
+int autocomplete_constructor_contacts_foreign_link_requested (struct paramed_type *T);
+int skip_constructor_contacts_foreign_link_mutual (struct paramed_type *T);
+int store_constructor_contacts_foreign_link_mutual (struct paramed_type *T);
+int fetch_constructor_contacts_foreign_link_mutual (struct paramed_type *T);
+int autocomplete_constructor_contacts_foreign_link_mutual (struct paramed_type *T);
+int skip_constructor_contacts_found (struct paramed_type *T);
+int store_constructor_contacts_found (struct paramed_type *T);
+int fetch_constructor_contacts_found (struct paramed_type *T);
+int autocomplete_constructor_contacts_found (struct paramed_type *T);
+int skip_constructor_contacts_imported_contacts (struct paramed_type *T);
+int store_constructor_contacts_imported_contacts (struct paramed_type *T);
+int fetch_constructor_contacts_imported_contacts (struct paramed_type *T);
+int autocomplete_constructor_contacts_imported_contacts (struct paramed_type *T);
+int skip_constructor_contacts_link (struct paramed_type *T);
+int store_constructor_contacts_link (struct paramed_type *T);
+int fetch_constructor_contacts_link (struct paramed_type *T);
+int autocomplete_constructor_contacts_link (struct paramed_type *T);
+int skip_constructor_contacts_my_link_empty (struct paramed_type *T);
+int store_constructor_contacts_my_link_empty (struct paramed_type *T);
+int fetch_constructor_contacts_my_link_empty (struct paramed_type *T);
+int autocomplete_constructor_contacts_my_link_empty (struct paramed_type *T);
+int skip_constructor_contacts_my_link_requested (struct paramed_type *T);
+int store_constructor_contacts_my_link_requested (struct paramed_type *T);
+int fetch_constructor_contacts_my_link_requested (struct paramed_type *T);
+int autocomplete_constructor_contacts_my_link_requested (struct paramed_type *T);
+int skip_constructor_contacts_my_link_contact (struct paramed_type *T);
+int store_constructor_contacts_my_link_contact (struct paramed_type *T);
+int fetch_constructor_contacts_my_link_contact (struct paramed_type *T);
+int autocomplete_constructor_contacts_my_link_contact (struct paramed_type *T);
+int skip_constructor_contacts_suggested (struct paramed_type *T);
+int store_constructor_contacts_suggested (struct paramed_type *T);
+int fetch_constructor_contacts_suggested (struct paramed_type *T);
+int autocomplete_constructor_contacts_suggested (struct paramed_type *T);
+int skip_constructor_geochats_located (struct paramed_type *T);
+int store_constructor_geochats_located (struct paramed_type *T);
+int fetch_constructor_geochats_located (struct paramed_type *T);
+int autocomplete_constructor_geochats_located (struct paramed_type *T);
+int skip_constructor_geochats_messages (struct paramed_type *T);
+int store_constructor_geochats_messages (struct paramed_type *T);
+int fetch_constructor_geochats_messages (struct paramed_type *T);
+int autocomplete_constructor_geochats_messages (struct paramed_type *T);
+int skip_constructor_geochats_messages_slice (struct paramed_type *T);
+int store_constructor_geochats_messages_slice (struct paramed_type *T);
+int fetch_constructor_geochats_messages_slice (struct paramed_type *T);
+int autocomplete_constructor_geochats_messages_slice (struct paramed_type *T);
+int skip_constructor_geochats_stated_message (struct paramed_type *T);
+int store_constructor_geochats_stated_message (struct paramed_type *T);
+int fetch_constructor_geochats_stated_message (struct paramed_type *T);
+int autocomplete_constructor_geochats_stated_message (struct paramed_type *T);
+int skip_constructor_help_app_update (struct paramed_type *T);
+int store_constructor_help_app_update (struct paramed_type *T);
+int fetch_constructor_help_app_update (struct paramed_type *T);
+int autocomplete_constructor_help_app_update (struct paramed_type *T);
+int skip_constructor_help_no_app_update (struct paramed_type *T);
+int store_constructor_help_no_app_update (struct paramed_type *T);
+int fetch_constructor_help_no_app_update (struct paramed_type *T);
+int autocomplete_constructor_help_no_app_update (struct paramed_type *T);
+int skip_constructor_help_invite_text (struct paramed_type *T);
+int store_constructor_help_invite_text (struct paramed_type *T);
+int fetch_constructor_help_invite_text (struct paramed_type *T);
+int autocomplete_constructor_help_invite_text (struct paramed_type *T);
+int skip_constructor_help_support (struct paramed_type *T);
+int store_constructor_help_support (struct paramed_type *T);
+int fetch_constructor_help_support (struct paramed_type *T);
+int autocomplete_constructor_help_support (struct paramed_type *T);
+int skip_constructor_messages_affected_history (struct paramed_type *T);
+int store_constructor_messages_affected_history (struct paramed_type *T);
+int fetch_constructor_messages_affected_history (struct paramed_type *T);
+int autocomplete_constructor_messages_affected_history (struct paramed_type *T);
+int skip_constructor_messages_all_stickers_not_modified (struct paramed_type *T);
+int store_constructor_messages_all_stickers_not_modified (struct paramed_type *T);
+int fetch_constructor_messages_all_stickers_not_modified (struct paramed_type *T);
+int autocomplete_constructor_messages_all_stickers_not_modified (struct paramed_type *T);
+int skip_constructor_messages_all_stickers (struct paramed_type *T);
+int store_constructor_messages_all_stickers (struct paramed_type *T);
+int fetch_constructor_messages_all_stickers (struct paramed_type *T);
+int autocomplete_constructor_messages_all_stickers (struct paramed_type *T);
+int skip_constructor_messages_chat (struct paramed_type *T);
+int store_constructor_messages_chat (struct paramed_type *T);
+int fetch_constructor_messages_chat (struct paramed_type *T);
+int autocomplete_constructor_messages_chat (struct paramed_type *T);
+int skip_constructor_messages_chat_full (struct paramed_type *T);
+int store_constructor_messages_chat_full (struct paramed_type *T);
+int fetch_constructor_messages_chat_full (struct paramed_type *T);
+int autocomplete_constructor_messages_chat_full (struct paramed_type *T);
+int skip_constructor_messages_chats (struct paramed_type *T);
+int store_constructor_messages_chats (struct paramed_type *T);
+int fetch_constructor_messages_chats (struct paramed_type *T);
+int autocomplete_constructor_messages_chats (struct paramed_type *T);
+int skip_constructor_messages_dh_config_not_modified (struct paramed_type *T);
+int store_constructor_messages_dh_config_not_modified (struct paramed_type *T);
+int fetch_constructor_messages_dh_config_not_modified (struct paramed_type *T);
+int autocomplete_constructor_messages_dh_config_not_modified (struct paramed_type *T);
+int skip_constructor_messages_dh_config (struct paramed_type *T);
+int store_constructor_messages_dh_config (struct paramed_type *T);
+int fetch_constructor_messages_dh_config (struct paramed_type *T);
+int autocomplete_constructor_messages_dh_config (struct paramed_type *T);
+int skip_constructor_messages_dialogs (struct paramed_type *T);
+int store_constructor_messages_dialogs (struct paramed_type *T);
+int fetch_constructor_messages_dialogs (struct paramed_type *T);
+int autocomplete_constructor_messages_dialogs (struct paramed_type *T);
+int skip_constructor_messages_dialogs_slice (struct paramed_type *T);
+int store_constructor_messages_dialogs_slice (struct paramed_type *T);
+int fetch_constructor_messages_dialogs_slice (struct paramed_type *T);
+int autocomplete_constructor_messages_dialogs_slice (struct paramed_type *T);
+int skip_constructor_messages_message_empty (struct paramed_type *T);
+int store_constructor_messages_message_empty (struct paramed_type *T);
+int fetch_constructor_messages_message_empty (struct paramed_type *T);
+int autocomplete_constructor_messages_message_empty (struct paramed_type *T);
+int skip_constructor_messages_message (struct paramed_type *T);
+int store_constructor_messages_message (struct paramed_type *T);
+int fetch_constructor_messages_message (struct paramed_type *T);
+int autocomplete_constructor_messages_message (struct paramed_type *T);
+int skip_constructor_messages_messages (struct paramed_type *T);
+int store_constructor_messages_messages (struct paramed_type *T);
+int fetch_constructor_messages_messages (struct paramed_type *T);
+int autocomplete_constructor_messages_messages (struct paramed_type *T);
+int skip_constructor_messages_messages_slice (struct paramed_type *T);
+int store_constructor_messages_messages_slice (struct paramed_type *T);
+int fetch_constructor_messages_messages_slice (struct paramed_type *T);
+int autocomplete_constructor_messages_messages_slice (struct paramed_type *T);
+int skip_constructor_messages_sent_encrypted_message (struct paramed_type *T);
+int store_constructor_messages_sent_encrypted_message (struct paramed_type *T);
+int fetch_constructor_messages_sent_encrypted_message (struct paramed_type *T);
+int autocomplete_constructor_messages_sent_encrypted_message (struct paramed_type *T);
+int skip_constructor_messages_sent_encrypted_file (struct paramed_type *T);
+int store_constructor_messages_sent_encrypted_file (struct paramed_type *T);
+int fetch_constructor_messages_sent_encrypted_file (struct paramed_type *T);
+int autocomplete_constructor_messages_sent_encrypted_file (struct paramed_type *T);
+int skip_constructor_messages_sent_message (struct paramed_type *T);
+int store_constructor_messages_sent_message (struct paramed_type *T);
+int fetch_constructor_messages_sent_message (struct paramed_type *T);
+int autocomplete_constructor_messages_sent_message (struct paramed_type *T);
+int skip_constructor_messages_sent_message_link (struct paramed_type *T);
+int store_constructor_messages_sent_message_link (struct paramed_type *T);
+int fetch_constructor_messages_sent_message_link (struct paramed_type *T);
+int autocomplete_constructor_messages_sent_message_link (struct paramed_type *T);
+int skip_constructor_messages_stated_message (struct paramed_type *T);
+int store_constructor_messages_stated_message (struct paramed_type *T);
+int fetch_constructor_messages_stated_message (struct paramed_type *T);
+int autocomplete_constructor_messages_stated_message (struct paramed_type *T);
+int skip_constructor_messages_stated_message_link (struct paramed_type *T);
+int store_constructor_messages_stated_message_link (struct paramed_type *T);
+int fetch_constructor_messages_stated_message_link (struct paramed_type *T);
+int autocomplete_constructor_messages_stated_message_link (struct paramed_type *T);
+int skip_constructor_messages_stated_messages (struct paramed_type *T);
+int store_constructor_messages_stated_messages (struct paramed_type *T);
+int fetch_constructor_messages_stated_messages (struct paramed_type *T);
+int autocomplete_constructor_messages_stated_messages (struct paramed_type *T);
+int skip_constructor_messages_stated_messages_links (struct paramed_type *T);
+int store_constructor_messages_stated_messages_links (struct paramed_type *T);
+int fetch_constructor_messages_stated_messages_links (struct paramed_type *T);
+int autocomplete_constructor_messages_stated_messages_links (struct paramed_type *T);
+int skip_constructor_messages_stickers_not_modified (struct paramed_type *T);
+int store_constructor_messages_stickers_not_modified (struct paramed_type *T);
+int fetch_constructor_messages_stickers_not_modified (struct paramed_type *T);
+int autocomplete_constructor_messages_stickers_not_modified (struct paramed_type *T);
+int skip_constructor_messages_stickers (struct paramed_type *T);
+int store_constructor_messages_stickers (struct paramed_type *T);
+int fetch_constructor_messages_stickers (struct paramed_type *T);
+int autocomplete_constructor_messages_stickers (struct paramed_type *T);
+int skip_constructor_photos_photo (struct paramed_type *T);
+int store_constructor_photos_photo (struct paramed_type *T);
+int fetch_constructor_photos_photo (struct paramed_type *T);
+int autocomplete_constructor_photos_photo (struct paramed_type *T);
+int skip_constructor_photos_photos (struct paramed_type *T);
+int store_constructor_photos_photos (struct paramed_type *T);
+int fetch_constructor_photos_photos (struct paramed_type *T);
+int autocomplete_constructor_photos_photos (struct paramed_type *T);
+int skip_constructor_photos_photos_slice (struct paramed_type *T);
+int store_constructor_photos_photos_slice (struct paramed_type *T);
+int fetch_constructor_photos_photos_slice (struct paramed_type *T);
+int autocomplete_constructor_photos_photos_slice (struct paramed_type *T);
+int skip_constructor_storage_file_unknown (struct paramed_type *T);
+int store_constructor_storage_file_unknown (struct paramed_type *T);
+int fetch_constructor_storage_file_unknown (struct paramed_type *T);
+int autocomplete_constructor_storage_file_unknown (struct paramed_type *T);
+int skip_constructor_storage_file_jpeg (struct paramed_type *T);
+int store_constructor_storage_file_jpeg (struct paramed_type *T);
+int fetch_constructor_storage_file_jpeg (struct paramed_type *T);
+int autocomplete_constructor_storage_file_jpeg (struct paramed_type *T);
+int skip_constructor_storage_file_gif (struct paramed_type *T);
+int store_constructor_storage_file_gif (struct paramed_type *T);
+int fetch_constructor_storage_file_gif (struct paramed_type *T);
+int autocomplete_constructor_storage_file_gif (struct paramed_type *T);
+int skip_constructor_storage_file_png (struct paramed_type *T);
+int store_constructor_storage_file_png (struct paramed_type *T);
+int fetch_constructor_storage_file_png (struct paramed_type *T);
+int autocomplete_constructor_storage_file_png (struct paramed_type *T);
+int skip_constructor_storage_file_pdf (struct paramed_type *T);
+int store_constructor_storage_file_pdf (struct paramed_type *T);
+int fetch_constructor_storage_file_pdf (struct paramed_type *T);
+int autocomplete_constructor_storage_file_pdf (struct paramed_type *T);
+int skip_constructor_storage_file_mp3 (struct paramed_type *T);
+int store_constructor_storage_file_mp3 (struct paramed_type *T);
+int fetch_constructor_storage_file_mp3 (struct paramed_type *T);
+int autocomplete_constructor_storage_file_mp3 (struct paramed_type *T);
+int skip_constructor_storage_file_mov (struct paramed_type *T);
+int store_constructor_storage_file_mov (struct paramed_type *T);
+int fetch_constructor_storage_file_mov (struct paramed_type *T);
+int autocomplete_constructor_storage_file_mov (struct paramed_type *T);
+int skip_constructor_storage_file_partial (struct paramed_type *T);
+int store_constructor_storage_file_partial (struct paramed_type *T);
+int fetch_constructor_storage_file_partial (struct paramed_type *T);
+int autocomplete_constructor_storage_file_partial (struct paramed_type *T);
+int skip_constructor_storage_file_mp4 (struct paramed_type *T);
+int store_constructor_storage_file_mp4 (struct paramed_type *T);
+int fetch_constructor_storage_file_mp4 (struct paramed_type *T);
+int autocomplete_constructor_storage_file_mp4 (struct paramed_type *T);
+int skip_constructor_storage_file_webp (struct paramed_type *T);
+int store_constructor_storage_file_webp (struct paramed_type *T);
+int fetch_constructor_storage_file_webp (struct paramed_type *T);
+int autocomplete_constructor_storage_file_webp (struct paramed_type *T);
+int skip_constructor_updates_difference_empty (struct paramed_type *T);
+int store_constructor_updates_difference_empty (struct paramed_type *T);
+int fetch_constructor_updates_difference_empty (struct paramed_type *T);
+int autocomplete_constructor_updates_difference_empty (struct paramed_type *T);
+int skip_constructor_updates_difference (struct paramed_type *T);
+int store_constructor_updates_difference (struct paramed_type *T);
+int fetch_constructor_updates_difference (struct paramed_type *T);
+int autocomplete_constructor_updates_difference (struct paramed_type *T);
+int skip_constructor_updates_difference_slice (struct paramed_type *T);
+int store_constructor_updates_difference_slice (struct paramed_type *T);
+int fetch_constructor_updates_difference_slice (struct paramed_type *T);
+int autocomplete_constructor_updates_difference_slice (struct paramed_type *T);
+int skip_constructor_updates_state (struct paramed_type *T);
+int store_constructor_updates_state (struct paramed_type *T);
+int fetch_constructor_updates_state (struct paramed_type *T);
+int autocomplete_constructor_updates_state (struct paramed_type *T);
+int skip_constructor_upload_file (struct paramed_type *T);
+int store_constructor_upload_file (struct paramed_type *T);
+int fetch_constructor_upload_file (struct paramed_type *T);
+int autocomplete_constructor_upload_file (struct paramed_type *T);
+int skip_type_account_days_t_t_l (struct paramed_type *T);
+int skip_type_bare_account_days_t_t_l (struct paramed_type *T);
+int store_type_account_days_t_t_l (struct paramed_type *T);
+int store_type_bare_account_days_t_t_l (struct paramed_type *T);
+int fetch_type_account_days_t_t_l (struct paramed_type *T);
+int fetch_type_bare_account_days_t_t_l (struct paramed_type *T);
+int autocomplete_type_account_days_t_t_l (struct paramed_type *T);
+int do_autocomplete_type_account_days_t_t_l (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_account_days_t_t_l (struct paramed_type *T);
+int skip_type_audio (struct paramed_type *T);
+int skip_type_bare_audio (struct paramed_type *T);
+int store_type_audio (struct paramed_type *T);
+int store_type_bare_audio (struct paramed_type *T);
+int fetch_type_audio (struct paramed_type *T);
+int fetch_type_bare_audio (struct paramed_type *T);
+int autocomplete_type_audio (struct paramed_type *T);
+int do_autocomplete_type_audio (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_audio (struct paramed_type *T);
+int skip_type_bool (struct paramed_type *T);
+int skip_type_bare_bool (struct paramed_type *T);
+int store_type_bool (struct paramed_type *T);
+int store_type_bare_bool (struct paramed_type *T);
+int fetch_type_bool (struct paramed_type *T);
+int fetch_type_bare_bool (struct paramed_type *T);
+int autocomplete_type_bool (struct paramed_type *T);
+int do_autocomplete_type_bool (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_bool (struct paramed_type *T);
+int skip_type_bytes (struct paramed_type *T);
+int skip_type_bare_bytes (struct paramed_type *T);
+int store_type_bytes (struct paramed_type *T);
+int store_type_bare_bytes (struct paramed_type *T);
+int fetch_type_bytes (struct paramed_type *T);
+int fetch_type_bare_bytes (struct paramed_type *T);
+int autocomplete_type_bytes (struct paramed_type *T);
+int do_autocomplete_type_bytes (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_bytes (struct paramed_type *T);
+int skip_type_chat (struct paramed_type *T);
+int skip_type_bare_chat (struct paramed_type *T);
+int store_type_chat (struct paramed_type *T);
+int store_type_bare_chat (struct paramed_type *T);
+int fetch_type_chat (struct paramed_type *T);
+int fetch_type_bare_chat (struct paramed_type *T);
+int autocomplete_type_chat (struct paramed_type *T);
+int do_autocomplete_type_chat (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_chat (struct paramed_type *T);
+int skip_type_chat_full (struct paramed_type *T);
+int skip_type_bare_chat_full (struct paramed_type *T);
+int store_type_chat_full (struct paramed_type *T);
+int store_type_bare_chat_full (struct paramed_type *T);
+int fetch_type_chat_full (struct paramed_type *T);
+int fetch_type_bare_chat_full (struct paramed_type *T);
+int autocomplete_type_chat_full (struct paramed_type *T);
+int do_autocomplete_type_chat_full (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_chat_full (struct paramed_type *T);
+int skip_type_chat_located (struct paramed_type *T);
+int skip_type_bare_chat_located (struct paramed_type *T);
+int store_type_chat_located (struct paramed_type *T);
+int store_type_bare_chat_located (struct paramed_type *T);
+int fetch_type_chat_located (struct paramed_type *T);
+int fetch_type_bare_chat_located (struct paramed_type *T);
+int autocomplete_type_chat_located (struct paramed_type *T);
+int do_autocomplete_type_chat_located (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_chat_located (struct paramed_type *T);
+int skip_type_chat_participant (struct paramed_type *T);
+int skip_type_bare_chat_participant (struct paramed_type *T);
+int store_type_chat_participant (struct paramed_type *T);
+int store_type_bare_chat_participant (struct paramed_type *T);
+int fetch_type_chat_participant (struct paramed_type *T);
+int fetch_type_bare_chat_participant (struct paramed_type *T);
+int autocomplete_type_chat_participant (struct paramed_type *T);
+int do_autocomplete_type_chat_participant (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_chat_participant (struct paramed_type *T);
+int skip_type_chat_participants (struct paramed_type *T);
+int skip_type_bare_chat_participants (struct paramed_type *T);
+int store_type_chat_participants (struct paramed_type *T);
+int store_type_bare_chat_participants (struct paramed_type *T);
+int fetch_type_chat_participants (struct paramed_type *T);
+int fetch_type_bare_chat_participants (struct paramed_type *T);
+int autocomplete_type_chat_participants (struct paramed_type *T);
+int do_autocomplete_type_chat_participants (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_chat_participants (struct paramed_type *T);
+int skip_type_chat_photo (struct paramed_type *T);
+int skip_type_bare_chat_photo (struct paramed_type *T);
+int store_type_chat_photo (struct paramed_type *T);
+int store_type_bare_chat_photo (struct paramed_type *T);
+int fetch_type_chat_photo (struct paramed_type *T);
+int fetch_type_bare_chat_photo (struct paramed_type *T);
+int autocomplete_type_chat_photo (struct paramed_type *T);
+int do_autocomplete_type_chat_photo (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_chat_photo (struct paramed_type *T);
+int skip_type_client_d_h_inner_data (struct paramed_type *T);
+int skip_type_bare_client_d_h_inner_data (struct paramed_type *T);
+int store_type_client_d_h_inner_data (struct paramed_type *T);
+int store_type_bare_client_d_h_inner_data (struct paramed_type *T);
+int fetch_type_client_d_h_inner_data (struct paramed_type *T);
+int fetch_type_bare_client_d_h_inner_data (struct paramed_type *T);
+int autocomplete_type_client_d_h_inner_data (struct paramed_type *T);
+int do_autocomplete_type_client_d_h_inner_data (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_client_d_h_inner_data (struct paramed_type *T);
+int skip_type_config (struct paramed_type *T);
+int skip_type_bare_config (struct paramed_type *T);
+int store_type_config (struct paramed_type *T);
+int store_type_bare_config (struct paramed_type *T);
+int fetch_type_config (struct paramed_type *T);
+int fetch_type_bare_config (struct paramed_type *T);
+int autocomplete_type_config (struct paramed_type *T);
+int do_autocomplete_type_config (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_config (struct paramed_type *T);
+int skip_type_contact (struct paramed_type *T);
+int skip_type_bare_contact (struct paramed_type *T);
+int store_type_contact (struct paramed_type *T);
+int store_type_bare_contact (struct paramed_type *T);
+int fetch_type_contact (struct paramed_type *T);
+int fetch_type_bare_contact (struct paramed_type *T);
+int autocomplete_type_contact (struct paramed_type *T);
+int do_autocomplete_type_contact (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_contact (struct paramed_type *T);
+int skip_type_contact_blocked (struct paramed_type *T);
+int skip_type_bare_contact_blocked (struct paramed_type *T);
+int store_type_contact_blocked (struct paramed_type *T);
+int store_type_bare_contact_blocked (struct paramed_type *T);
+int fetch_type_contact_blocked (struct paramed_type *T);
+int fetch_type_bare_contact_blocked (struct paramed_type *T);
+int autocomplete_type_contact_blocked (struct paramed_type *T);
+int do_autocomplete_type_contact_blocked (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_contact_blocked (struct paramed_type *T);
+int skip_type_contact_found (struct paramed_type *T);
+int skip_type_bare_contact_found (struct paramed_type *T);
+int store_type_contact_found (struct paramed_type *T);
+int store_type_bare_contact_found (struct paramed_type *T);
+int fetch_type_contact_found (struct paramed_type *T);
+int fetch_type_bare_contact_found (struct paramed_type *T);
+int autocomplete_type_contact_found (struct paramed_type *T);
+int do_autocomplete_type_contact_found (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_contact_found (struct paramed_type *T);
+int skip_type_contact_status (struct paramed_type *T);
+int skip_type_bare_contact_status (struct paramed_type *T);
+int store_type_contact_status (struct paramed_type *T);
+int store_type_bare_contact_status (struct paramed_type *T);
+int fetch_type_contact_status (struct paramed_type *T);
+int fetch_type_bare_contact_status (struct paramed_type *T);
+int autocomplete_type_contact_status (struct paramed_type *T);
+int do_autocomplete_type_contact_status (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_contact_status (struct paramed_type *T);
+int skip_type_contact_suggested (struct paramed_type *T);
+int skip_type_bare_contact_suggested (struct paramed_type *T);
+int store_type_contact_suggested (struct paramed_type *T);
+int store_type_bare_contact_suggested (struct paramed_type *T);
+int fetch_type_contact_suggested (struct paramed_type *T);
+int fetch_type_bare_contact_suggested (struct paramed_type *T);
+int autocomplete_type_contact_suggested (struct paramed_type *T);
+int do_autocomplete_type_contact_suggested (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_contact_suggested (struct paramed_type *T);
+int skip_type_dc_option (struct paramed_type *T);
+int skip_type_bare_dc_option (struct paramed_type *T);
+int store_type_dc_option (struct paramed_type *T);
+int store_type_bare_dc_option (struct paramed_type *T);
+int fetch_type_dc_option (struct paramed_type *T);
+int fetch_type_bare_dc_option (struct paramed_type *T);
+int autocomplete_type_dc_option (struct paramed_type *T);
+int do_autocomplete_type_dc_option (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_dc_option (struct paramed_type *T);
+int skip_type_decrypted_message (struct paramed_type *T);
+int skip_type_bare_decrypted_message (struct paramed_type *T);
+int store_type_decrypted_message (struct paramed_type *T);
+int store_type_bare_decrypted_message (struct paramed_type *T);
+int fetch_type_decrypted_message (struct paramed_type *T);
+int fetch_type_bare_decrypted_message (struct paramed_type *T);
+int autocomplete_type_decrypted_message (struct paramed_type *T);
+int do_autocomplete_type_decrypted_message (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_decrypted_message (struct paramed_type *T);
+int skip_type_decrypted_message_action (struct paramed_type *T);
+int skip_type_bare_decrypted_message_action (struct paramed_type *T);
+int store_type_decrypted_message_action (struct paramed_type *T);
+int store_type_bare_decrypted_message_action (struct paramed_type *T);
+int fetch_type_decrypted_message_action (struct paramed_type *T);
+int fetch_type_bare_decrypted_message_action (struct paramed_type *T);
+int autocomplete_type_decrypted_message_action (struct paramed_type *T);
+int do_autocomplete_type_decrypted_message_action (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_decrypted_message_action (struct paramed_type *T);
+int skip_type_decrypted_message_layer (struct paramed_type *T);
+int skip_type_bare_decrypted_message_layer (struct paramed_type *T);
+int store_type_decrypted_message_layer (struct paramed_type *T);
+int store_type_bare_decrypted_message_layer (struct paramed_type *T);
+int fetch_type_decrypted_message_layer (struct paramed_type *T);
+int fetch_type_bare_decrypted_message_layer (struct paramed_type *T);
+int autocomplete_type_decrypted_message_layer (struct paramed_type *T);
+int do_autocomplete_type_decrypted_message_layer (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_decrypted_message_layer (struct paramed_type *T);
+int skip_type_decrypted_message_media (struct paramed_type *T);
+int skip_type_bare_decrypted_message_media (struct paramed_type *T);
+int store_type_decrypted_message_media (struct paramed_type *T);
+int store_type_bare_decrypted_message_media (struct paramed_type *T);
+int fetch_type_decrypted_message_media (struct paramed_type *T);
+int fetch_type_bare_decrypted_message_media (struct paramed_type *T);
+int autocomplete_type_decrypted_message_media (struct paramed_type *T);
+int do_autocomplete_type_decrypted_message_media (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_decrypted_message_media (struct paramed_type *T);
+int skip_type_dialog (struct paramed_type *T);
+int skip_type_bare_dialog (struct paramed_type *T);
+int store_type_dialog (struct paramed_type *T);
+int store_type_bare_dialog (struct paramed_type *T);
+int fetch_type_dialog (struct paramed_type *T);
+int fetch_type_bare_dialog (struct paramed_type *T);
+int autocomplete_type_dialog (struct paramed_type *T);
+int do_autocomplete_type_dialog (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_dialog (struct paramed_type *T);
+int skip_type_document (struct paramed_type *T);
+int skip_type_bare_document (struct paramed_type *T);
+int store_type_document (struct paramed_type *T);
+int store_type_bare_document (struct paramed_type *T);
+int fetch_type_document (struct paramed_type *T);
+int fetch_type_bare_document (struct paramed_type *T);
+int autocomplete_type_document (struct paramed_type *T);
+int do_autocomplete_type_document (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_document (struct paramed_type *T);
+int skip_type_document_attribute (struct paramed_type *T);
+int skip_type_bare_document_attribute (struct paramed_type *T);
+int store_type_document_attribute (struct paramed_type *T);
+int store_type_bare_document_attribute (struct paramed_type *T);
+int fetch_type_document_attribute (struct paramed_type *T);
+int fetch_type_bare_document_attribute (struct paramed_type *T);
+int autocomplete_type_document_attribute (struct paramed_type *T);
+int do_autocomplete_type_document_attribute (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_document_attribute (struct paramed_type *T);
+int skip_type_double (struct paramed_type *T);
+int skip_type_bare_double (struct paramed_type *T);
+int store_type_double (struct paramed_type *T);
+int store_type_bare_double (struct paramed_type *T);
+int fetch_type_double (struct paramed_type *T);
+int fetch_type_bare_double (struct paramed_type *T);
+int autocomplete_type_double (struct paramed_type *T);
+int do_autocomplete_type_double (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_double (struct paramed_type *T);
+int skip_type_encrypted_chat (struct paramed_type *T);
+int skip_type_bare_encrypted_chat (struct paramed_type *T);
+int store_type_encrypted_chat (struct paramed_type *T);
+int store_type_bare_encrypted_chat (struct paramed_type *T);
+int fetch_type_encrypted_chat (struct paramed_type *T);
+int fetch_type_bare_encrypted_chat (struct paramed_type *T);
+int autocomplete_type_encrypted_chat (struct paramed_type *T);
+int do_autocomplete_type_encrypted_chat (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_encrypted_chat (struct paramed_type *T);
+int skip_type_encrypted_file (struct paramed_type *T);
+int skip_type_bare_encrypted_file (struct paramed_type *T);
+int store_type_encrypted_file (struct paramed_type *T);
+int store_type_bare_encrypted_file (struct paramed_type *T);
+int fetch_type_encrypted_file (struct paramed_type *T);
+int fetch_type_bare_encrypted_file (struct paramed_type *T);
+int autocomplete_type_encrypted_file (struct paramed_type *T);
+int do_autocomplete_type_encrypted_file (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_encrypted_file (struct paramed_type *T);
+int skip_type_encrypted_message (struct paramed_type *T);
+int skip_type_bare_encrypted_message (struct paramed_type *T);
+int store_type_encrypted_message (struct paramed_type *T);
+int store_type_bare_encrypted_message (struct paramed_type *T);
+int fetch_type_encrypted_message (struct paramed_type *T);
+int fetch_type_bare_encrypted_message (struct paramed_type *T);
+int autocomplete_type_encrypted_message (struct paramed_type *T);
+int do_autocomplete_type_encrypted_message (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_encrypted_message (struct paramed_type *T);
+int skip_type_error (struct paramed_type *T);
+int skip_type_bare_error (struct paramed_type *T);
+int store_type_error (struct paramed_type *T);
+int store_type_bare_error (struct paramed_type *T);
+int fetch_type_error (struct paramed_type *T);
+int fetch_type_bare_error (struct paramed_type *T);
+int autocomplete_type_error (struct paramed_type *T);
+int do_autocomplete_type_error (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_error (struct paramed_type *T);
+int skip_type_file_location (struct paramed_type *T);
+int skip_type_bare_file_location (struct paramed_type *T);
+int store_type_file_location (struct paramed_type *T);
+int store_type_bare_file_location (struct paramed_type *T);
+int fetch_type_file_location (struct paramed_type *T);
+int fetch_type_bare_file_location (struct paramed_type *T);
+int autocomplete_type_file_location (struct paramed_type *T);
+int do_autocomplete_type_file_location (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_file_location (struct paramed_type *T);
+int skip_type_geo_chat_message (struct paramed_type *T);
+int skip_type_bare_geo_chat_message (struct paramed_type *T);
+int store_type_geo_chat_message (struct paramed_type *T);
+int store_type_bare_geo_chat_message (struct paramed_type *T);
+int fetch_type_geo_chat_message (struct paramed_type *T);
+int fetch_type_bare_geo_chat_message (struct paramed_type *T);
+int autocomplete_type_geo_chat_message (struct paramed_type *T);
+int do_autocomplete_type_geo_chat_message (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_geo_chat_message (struct paramed_type *T);
+int skip_type_geo_point (struct paramed_type *T);
+int skip_type_bare_geo_point (struct paramed_type *T);
+int store_type_geo_point (struct paramed_type *T);
+int store_type_bare_geo_point (struct paramed_type *T);
+int fetch_type_geo_point (struct paramed_type *T);
+int fetch_type_bare_geo_point (struct paramed_type *T);
+int autocomplete_type_geo_point (struct paramed_type *T);
+int do_autocomplete_type_geo_point (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_geo_point (struct paramed_type *T);
+int skip_type_imported_contact (struct paramed_type *T);
+int skip_type_bare_imported_contact (struct paramed_type *T);
+int store_type_imported_contact (struct paramed_type *T);
+int store_type_bare_imported_contact (struct paramed_type *T);
+int fetch_type_imported_contact (struct paramed_type *T);
+int fetch_type_bare_imported_contact (struct paramed_type *T);
+int autocomplete_type_imported_contact (struct paramed_type *T);
+int do_autocomplete_type_imported_contact (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_imported_contact (struct paramed_type *T);
+int skip_type_input_app_event (struct paramed_type *T);
+int skip_type_bare_input_app_event (struct paramed_type *T);
+int store_type_input_app_event (struct paramed_type *T);
+int store_type_bare_input_app_event (struct paramed_type *T);
+int fetch_type_input_app_event (struct paramed_type *T);
+int fetch_type_bare_input_app_event (struct paramed_type *T);
+int autocomplete_type_input_app_event (struct paramed_type *T);
+int do_autocomplete_type_input_app_event (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_input_app_event (struct paramed_type *T);
+int skip_type_input_audio (struct paramed_type *T);
+int skip_type_bare_input_audio (struct paramed_type *T);
+int store_type_input_audio (struct paramed_type *T);
+int store_type_bare_input_audio (struct paramed_type *T);
+int fetch_type_input_audio (struct paramed_type *T);
+int fetch_type_bare_input_audio (struct paramed_type *T);
+int autocomplete_type_input_audio (struct paramed_type *T);
+int do_autocomplete_type_input_audio (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_input_audio (struct paramed_type *T);
+int skip_type_input_chat_photo (struct paramed_type *T);
+int skip_type_bare_input_chat_photo (struct paramed_type *T);
+int store_type_input_chat_photo (struct paramed_type *T);
+int store_type_bare_input_chat_photo (struct paramed_type *T);
+int fetch_type_input_chat_photo (struct paramed_type *T);
+int fetch_type_bare_input_chat_photo (struct paramed_type *T);
+int autocomplete_type_input_chat_photo (struct paramed_type *T);
+int do_autocomplete_type_input_chat_photo (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_input_chat_photo (struct paramed_type *T);
+int skip_type_input_contact (struct paramed_type *T);
+int skip_type_bare_input_contact (struct paramed_type *T);
+int store_type_input_contact (struct paramed_type *T);
+int store_type_bare_input_contact (struct paramed_type *T);
+int fetch_type_input_contact (struct paramed_type *T);
+int fetch_type_bare_input_contact (struct paramed_type *T);
+int autocomplete_type_input_contact (struct paramed_type *T);
+int do_autocomplete_type_input_contact (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_input_contact (struct paramed_type *T);
+int skip_type_input_document (struct paramed_type *T);
+int skip_type_bare_input_document (struct paramed_type *T);
+int store_type_input_document (struct paramed_type *T);
+int store_type_bare_input_document (struct paramed_type *T);
+int fetch_type_input_document (struct paramed_type *T);
+int fetch_type_bare_input_document (struct paramed_type *T);
+int autocomplete_type_input_document (struct paramed_type *T);
+int do_autocomplete_type_input_document (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_input_document (struct paramed_type *T);
+int skip_type_input_encrypted_chat (struct paramed_type *T);
+int skip_type_bare_input_encrypted_chat (struct paramed_type *T);
+int store_type_input_encrypted_chat (struct paramed_type *T);
+int store_type_bare_input_encrypted_chat (struct paramed_type *T);
+int fetch_type_input_encrypted_chat (struct paramed_type *T);
+int fetch_type_bare_input_encrypted_chat (struct paramed_type *T);
+int autocomplete_type_input_encrypted_chat (struct paramed_type *T);
+int do_autocomplete_type_input_encrypted_chat (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_input_encrypted_chat (struct paramed_type *T);
+int skip_type_input_encrypted_file (struct paramed_type *T);
+int skip_type_bare_input_encrypted_file (struct paramed_type *T);
+int store_type_input_encrypted_file (struct paramed_type *T);
+int store_type_bare_input_encrypted_file (struct paramed_type *T);
+int fetch_type_input_encrypted_file (struct paramed_type *T);
+int fetch_type_bare_input_encrypted_file (struct paramed_type *T);
+int autocomplete_type_input_encrypted_file (struct paramed_type *T);
+int do_autocomplete_type_input_encrypted_file (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_input_encrypted_file (struct paramed_type *T);
+int skip_type_input_file (struct paramed_type *T);
+int skip_type_bare_input_file (struct paramed_type *T);
+int store_type_input_file (struct paramed_type *T);
+int store_type_bare_input_file (struct paramed_type *T);
+int fetch_type_input_file (struct paramed_type *T);
+int fetch_type_bare_input_file (struct paramed_type *T);
+int autocomplete_type_input_file (struct paramed_type *T);
+int do_autocomplete_type_input_file (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_input_file (struct paramed_type *T);
+int skip_type_input_file_location (struct paramed_type *T);
+int skip_type_bare_input_file_location (struct paramed_type *T);
+int store_type_input_file_location (struct paramed_type *T);
+int store_type_bare_input_file_location (struct paramed_type *T);
+int fetch_type_input_file_location (struct paramed_type *T);
+int fetch_type_bare_input_file_location (struct paramed_type *T);
+int autocomplete_type_input_file_location (struct paramed_type *T);
+int do_autocomplete_type_input_file_location (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_input_file_location (struct paramed_type *T);
+int skip_type_input_geo_chat (struct paramed_type *T);
+int skip_type_bare_input_geo_chat (struct paramed_type *T);
+int store_type_input_geo_chat (struct paramed_type *T);
+int store_type_bare_input_geo_chat (struct paramed_type *T);
+int fetch_type_input_geo_chat (struct paramed_type *T);
+int fetch_type_bare_input_geo_chat (struct paramed_type *T);
+int autocomplete_type_input_geo_chat (struct paramed_type *T);
+int do_autocomplete_type_input_geo_chat (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_input_geo_chat (struct paramed_type *T);
+int skip_type_input_geo_point (struct paramed_type *T);
+int skip_type_bare_input_geo_point (struct paramed_type *T);
+int store_type_input_geo_point (struct paramed_type *T);
+int store_type_bare_input_geo_point (struct paramed_type *T);
+int fetch_type_input_geo_point (struct paramed_type *T);
+int fetch_type_bare_input_geo_point (struct paramed_type *T);
+int autocomplete_type_input_geo_point (struct paramed_type *T);
+int do_autocomplete_type_input_geo_point (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_input_geo_point (struct paramed_type *T);
+int skip_type_input_media (struct paramed_type *T);
+int skip_type_bare_input_media (struct paramed_type *T);
+int store_type_input_media (struct paramed_type *T);
+int store_type_bare_input_media (struct paramed_type *T);
+int fetch_type_input_media (struct paramed_type *T);
+int fetch_type_bare_input_media (struct paramed_type *T);
+int autocomplete_type_input_media (struct paramed_type *T);
+int do_autocomplete_type_input_media (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_input_media (struct paramed_type *T);
+int skip_type_input_notify_peer (struct paramed_type *T);
+int skip_type_bare_input_notify_peer (struct paramed_type *T);
+int store_type_input_notify_peer (struct paramed_type *T);
+int store_type_bare_input_notify_peer (struct paramed_type *T);
+int fetch_type_input_notify_peer (struct paramed_type *T);
+int fetch_type_bare_input_notify_peer (struct paramed_type *T);
+int autocomplete_type_input_notify_peer (struct paramed_type *T);
+int do_autocomplete_type_input_notify_peer (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_input_notify_peer (struct paramed_type *T);
+int skip_type_input_peer (struct paramed_type *T);
+int skip_type_bare_input_peer (struct paramed_type *T);
+int store_type_input_peer (struct paramed_type *T);
+int store_type_bare_input_peer (struct paramed_type *T);
+int fetch_type_input_peer (struct paramed_type *T);
+int fetch_type_bare_input_peer (struct paramed_type *T);
+int autocomplete_type_input_peer (struct paramed_type *T);
+int do_autocomplete_type_input_peer (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_input_peer (struct paramed_type *T);
+int skip_type_input_peer_notify_events (struct paramed_type *T);
+int skip_type_bare_input_peer_notify_events (struct paramed_type *T);
+int store_type_input_peer_notify_events (struct paramed_type *T);
+int store_type_bare_input_peer_notify_events (struct paramed_type *T);
+int fetch_type_input_peer_notify_events (struct paramed_type *T);
+int fetch_type_bare_input_peer_notify_events (struct paramed_type *T);
+int autocomplete_type_input_peer_notify_events (struct paramed_type *T);
+int do_autocomplete_type_input_peer_notify_events (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_input_peer_notify_events (struct paramed_type *T);
+int skip_type_input_peer_notify_settings (struct paramed_type *T);
+int skip_type_bare_input_peer_notify_settings (struct paramed_type *T);
+int store_type_input_peer_notify_settings (struct paramed_type *T);
+int store_type_bare_input_peer_notify_settings (struct paramed_type *T);
+int fetch_type_input_peer_notify_settings (struct paramed_type *T);
+int fetch_type_bare_input_peer_notify_settings (struct paramed_type *T);
+int autocomplete_type_input_peer_notify_settings (struct paramed_type *T);
+int do_autocomplete_type_input_peer_notify_settings (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_input_peer_notify_settings (struct paramed_type *T);
+int skip_type_input_photo (struct paramed_type *T);
+int skip_type_bare_input_photo (struct paramed_type *T);
+int store_type_input_photo (struct paramed_type *T);
+int store_type_bare_input_photo (struct paramed_type *T);
+int fetch_type_input_photo (struct paramed_type *T);
+int fetch_type_bare_input_photo (struct paramed_type *T);
+int autocomplete_type_input_photo (struct paramed_type *T);
+int do_autocomplete_type_input_photo (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_input_photo (struct paramed_type *T);
+int skip_type_input_photo_crop (struct paramed_type *T);
+int skip_type_bare_input_photo_crop (struct paramed_type *T);
+int store_type_input_photo_crop (struct paramed_type *T);
+int store_type_bare_input_photo_crop (struct paramed_type *T);
+int fetch_type_input_photo_crop (struct paramed_type *T);
+int fetch_type_bare_input_photo_crop (struct paramed_type *T);
+int autocomplete_type_input_photo_crop (struct paramed_type *T);
+int do_autocomplete_type_input_photo_crop (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_input_photo_crop (struct paramed_type *T);
+int skip_type_input_privacy_key (struct paramed_type *T);
+int skip_type_bare_input_privacy_key (struct paramed_type *T);
+int store_type_input_privacy_key (struct paramed_type *T);
+int store_type_bare_input_privacy_key (struct paramed_type *T);
+int fetch_type_input_privacy_key (struct paramed_type *T);
+int fetch_type_bare_input_privacy_key (struct paramed_type *T);
+int autocomplete_type_input_privacy_key (struct paramed_type *T);
+int do_autocomplete_type_input_privacy_key (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_input_privacy_key (struct paramed_type *T);
+int skip_type_input_privacy_rule (struct paramed_type *T);
+int skip_type_bare_input_privacy_rule (struct paramed_type *T);
+int store_type_input_privacy_rule (struct paramed_type *T);
+int store_type_bare_input_privacy_rule (struct paramed_type *T);
+int fetch_type_input_privacy_rule (struct paramed_type *T);
+int fetch_type_bare_input_privacy_rule (struct paramed_type *T);
+int autocomplete_type_input_privacy_rule (struct paramed_type *T);
+int do_autocomplete_type_input_privacy_rule (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_input_privacy_rule (struct paramed_type *T);
+int skip_type_input_user (struct paramed_type *T);
+int skip_type_bare_input_user (struct paramed_type *T);
+int store_type_input_user (struct paramed_type *T);
+int store_type_bare_input_user (struct paramed_type *T);
+int fetch_type_input_user (struct paramed_type *T);
+int fetch_type_bare_input_user (struct paramed_type *T);
+int autocomplete_type_input_user (struct paramed_type *T);
+int do_autocomplete_type_input_user (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_input_user (struct paramed_type *T);
+int skip_type_input_video (struct paramed_type *T);
+int skip_type_bare_input_video (struct paramed_type *T);
+int store_type_input_video (struct paramed_type *T);
+int store_type_bare_input_video (struct paramed_type *T);
+int fetch_type_input_video (struct paramed_type *T);
+int fetch_type_bare_input_video (struct paramed_type *T);
+int autocomplete_type_input_video (struct paramed_type *T);
+int do_autocomplete_type_input_video (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_input_video (struct paramed_type *T);
+int skip_type_int (struct paramed_type *T);
+int skip_type_bare_int (struct paramed_type *T);
+int store_type_int (struct paramed_type *T);
+int store_type_bare_int (struct paramed_type *T);
+int fetch_type_int (struct paramed_type *T);
+int fetch_type_bare_int (struct paramed_type *T);
+int autocomplete_type_int (struct paramed_type *T);
+int do_autocomplete_type_int (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_int (struct paramed_type *T);
+int skip_type_int128 (struct paramed_type *T);
+int skip_type_bare_int128 (struct paramed_type *T);
+int store_type_int128 (struct paramed_type *T);
+int store_type_bare_int128 (struct paramed_type *T);
+int fetch_type_int128 (struct paramed_type *T);
+int fetch_type_bare_int128 (struct paramed_type *T);
+int autocomplete_type_int128 (struct paramed_type *T);
+int do_autocomplete_type_int128 (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_int128 (struct paramed_type *T);
+int skip_type_int256 (struct paramed_type *T);
+int skip_type_bare_int256 (struct paramed_type *T);
+int store_type_int256 (struct paramed_type *T);
+int store_type_bare_int256 (struct paramed_type *T);
+int fetch_type_int256 (struct paramed_type *T);
+int fetch_type_bare_int256 (struct paramed_type *T);
+int autocomplete_type_int256 (struct paramed_type *T);
+int do_autocomplete_type_int256 (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_int256 (struct paramed_type *T);
+int skip_type_long (struct paramed_type *T);
+int skip_type_bare_long (struct paramed_type *T);
+int store_type_long (struct paramed_type *T);
+int store_type_bare_long (struct paramed_type *T);
+int fetch_type_long (struct paramed_type *T);
+int fetch_type_bare_long (struct paramed_type *T);
+int autocomplete_type_long (struct paramed_type *T);
+int do_autocomplete_type_long (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_long (struct paramed_type *T);
+int skip_type_message (struct paramed_type *T);
+int skip_type_bare_message (struct paramed_type *T);
+int store_type_message (struct paramed_type *T);
+int store_type_bare_message (struct paramed_type *T);
+int fetch_type_message (struct paramed_type *T);
+int fetch_type_bare_message (struct paramed_type *T);
+int autocomplete_type_message (struct paramed_type *T);
+int do_autocomplete_type_message (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_message (struct paramed_type *T);
+int skip_type_message_action (struct paramed_type *T);
+int skip_type_bare_message_action (struct paramed_type *T);
+int store_type_message_action (struct paramed_type *T);
+int store_type_bare_message_action (struct paramed_type *T);
+int fetch_type_message_action (struct paramed_type *T);
+int fetch_type_bare_message_action (struct paramed_type *T);
+int autocomplete_type_message_action (struct paramed_type *T);
+int do_autocomplete_type_message_action (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_message_action (struct paramed_type *T);
+int skip_type_message_media (struct paramed_type *T);
+int skip_type_bare_message_media (struct paramed_type *T);
+int store_type_message_media (struct paramed_type *T);
+int store_type_bare_message_media (struct paramed_type *T);
+int fetch_type_message_media (struct paramed_type *T);
+int fetch_type_bare_message_media (struct paramed_type *T);
+int autocomplete_type_message_media (struct paramed_type *T);
+int do_autocomplete_type_message_media (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_message_media (struct paramed_type *T);
+int skip_type_messages_filter (struct paramed_type *T);
+int skip_type_bare_messages_filter (struct paramed_type *T);
+int store_type_messages_filter (struct paramed_type *T);
+int store_type_bare_messages_filter (struct paramed_type *T);
+int fetch_type_messages_filter (struct paramed_type *T);
+int fetch_type_bare_messages_filter (struct paramed_type *T);
+int autocomplete_type_messages_filter (struct paramed_type *T);
+int do_autocomplete_type_messages_filter (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_messages_filter (struct paramed_type *T);
+int skip_type_nearest_dc (struct paramed_type *T);
+int skip_type_bare_nearest_dc (struct paramed_type *T);
+int store_type_nearest_dc (struct paramed_type *T);
+int store_type_bare_nearest_dc (struct paramed_type *T);
+int fetch_type_nearest_dc (struct paramed_type *T);
+int fetch_type_bare_nearest_dc (struct paramed_type *T);
+int autocomplete_type_nearest_dc (struct paramed_type *T);
+int do_autocomplete_type_nearest_dc (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_nearest_dc (struct paramed_type *T);
+int skip_type_notify_peer (struct paramed_type *T);
+int skip_type_bare_notify_peer (struct paramed_type *T);
+int store_type_notify_peer (struct paramed_type *T);
+int store_type_bare_notify_peer (struct paramed_type *T);
+int fetch_type_notify_peer (struct paramed_type *T);
+int fetch_type_bare_notify_peer (struct paramed_type *T);
+int autocomplete_type_notify_peer (struct paramed_type *T);
+int do_autocomplete_type_notify_peer (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_notify_peer (struct paramed_type *T);
+int skip_type_null (struct paramed_type *T);
+int skip_type_bare_null (struct paramed_type *T);
+int store_type_null (struct paramed_type *T);
+int store_type_bare_null (struct paramed_type *T);
+int fetch_type_null (struct paramed_type *T);
+int fetch_type_bare_null (struct paramed_type *T);
+int autocomplete_type_null (struct paramed_type *T);
+int do_autocomplete_type_null (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_null (struct paramed_type *T);
+int skip_type_p_q_inner_data (struct paramed_type *T);
+int skip_type_bare_p_q_inner_data (struct paramed_type *T);
+int store_type_p_q_inner_data (struct paramed_type *T);
+int store_type_bare_p_q_inner_data (struct paramed_type *T);
+int fetch_type_p_q_inner_data (struct paramed_type *T);
+int fetch_type_bare_p_q_inner_data (struct paramed_type *T);
+int autocomplete_type_p_q_inner_data (struct paramed_type *T);
+int do_autocomplete_type_p_q_inner_data (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_p_q_inner_data (struct paramed_type *T);
+int skip_type_peer (struct paramed_type *T);
+int skip_type_bare_peer (struct paramed_type *T);
+int store_type_peer (struct paramed_type *T);
+int store_type_bare_peer (struct paramed_type *T);
+int fetch_type_peer (struct paramed_type *T);
+int fetch_type_bare_peer (struct paramed_type *T);
+int autocomplete_type_peer (struct paramed_type *T);
+int do_autocomplete_type_peer (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_peer (struct paramed_type *T);
+int skip_type_peer_notify_events (struct paramed_type *T);
+int skip_type_bare_peer_notify_events (struct paramed_type *T);
+int store_type_peer_notify_events (struct paramed_type *T);
+int store_type_bare_peer_notify_events (struct paramed_type *T);
+int fetch_type_peer_notify_events (struct paramed_type *T);
+int fetch_type_bare_peer_notify_events (struct paramed_type *T);
+int autocomplete_type_peer_notify_events (struct paramed_type *T);
+int do_autocomplete_type_peer_notify_events (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_peer_notify_events (struct paramed_type *T);
+int skip_type_peer_notify_settings (struct paramed_type *T);
+int skip_type_bare_peer_notify_settings (struct paramed_type *T);
+int store_type_peer_notify_settings (struct paramed_type *T);
+int store_type_bare_peer_notify_settings (struct paramed_type *T);
+int fetch_type_peer_notify_settings (struct paramed_type *T);
+int fetch_type_bare_peer_notify_settings (struct paramed_type *T);
+int autocomplete_type_peer_notify_settings (struct paramed_type *T);
+int do_autocomplete_type_peer_notify_settings (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_peer_notify_settings (struct paramed_type *T);
+int skip_type_photo (struct paramed_type *T);
+int skip_type_bare_photo (struct paramed_type *T);
+int store_type_photo (struct paramed_type *T);
+int store_type_bare_photo (struct paramed_type *T);
+int fetch_type_photo (struct paramed_type *T);
+int fetch_type_bare_photo (struct paramed_type *T);
+int autocomplete_type_photo (struct paramed_type *T);
+int do_autocomplete_type_photo (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_photo (struct paramed_type *T);
+int skip_type_photo_size (struct paramed_type *T);
+int skip_type_bare_photo_size (struct paramed_type *T);
+int store_type_photo_size (struct paramed_type *T);
+int store_type_bare_photo_size (struct paramed_type *T);
+int fetch_type_photo_size (struct paramed_type *T);
+int fetch_type_bare_photo_size (struct paramed_type *T);
+int autocomplete_type_photo_size (struct paramed_type *T);
+int do_autocomplete_type_photo_size (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_photo_size (struct paramed_type *T);
+int skip_type_privacy_key (struct paramed_type *T);
+int skip_type_bare_privacy_key (struct paramed_type *T);
+int store_type_privacy_key (struct paramed_type *T);
+int store_type_bare_privacy_key (struct paramed_type *T);
+int fetch_type_privacy_key (struct paramed_type *T);
+int fetch_type_bare_privacy_key (struct paramed_type *T);
+int autocomplete_type_privacy_key (struct paramed_type *T);
+int do_autocomplete_type_privacy_key (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_privacy_key (struct paramed_type *T);
+int skip_type_privacy_rule (struct paramed_type *T);
+int skip_type_bare_privacy_rule (struct paramed_type *T);
+int store_type_privacy_rule (struct paramed_type *T);
+int store_type_bare_privacy_rule (struct paramed_type *T);
+int fetch_type_privacy_rule (struct paramed_type *T);
+int fetch_type_bare_privacy_rule (struct paramed_type *T);
+int autocomplete_type_privacy_rule (struct paramed_type *T);
+int do_autocomplete_type_privacy_rule (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_privacy_rule (struct paramed_type *T);
+int skip_type_res_p_q (struct paramed_type *T);
+int skip_type_bare_res_p_q (struct paramed_type *T);
+int store_type_res_p_q (struct paramed_type *T);
+int store_type_bare_res_p_q (struct paramed_type *T);
+int fetch_type_res_p_q (struct paramed_type *T);
+int fetch_type_bare_res_p_q (struct paramed_type *T);
+int autocomplete_type_res_p_q (struct paramed_type *T);
+int do_autocomplete_type_res_p_q (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_res_p_q (struct paramed_type *T);
+int skip_type_send_message_action (struct paramed_type *T);
+int skip_type_bare_send_message_action (struct paramed_type *T);
+int store_type_send_message_action (struct paramed_type *T);
+int store_type_bare_send_message_action (struct paramed_type *T);
+int fetch_type_send_message_action (struct paramed_type *T);
+int fetch_type_bare_send_message_action (struct paramed_type *T);
+int autocomplete_type_send_message_action (struct paramed_type *T);
+int do_autocomplete_type_send_message_action (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_send_message_action (struct paramed_type *T);
+int skip_type_server_d_h_params (struct paramed_type *T);
+int skip_type_bare_server_d_h_params (struct paramed_type *T);
+int store_type_server_d_h_params (struct paramed_type *T);
+int store_type_bare_server_d_h_params (struct paramed_type *T);
+int fetch_type_server_d_h_params (struct paramed_type *T);
+int fetch_type_bare_server_d_h_params (struct paramed_type *T);
+int autocomplete_type_server_d_h_params (struct paramed_type *T);
+int do_autocomplete_type_server_d_h_params (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_server_d_h_params (struct paramed_type *T);
+int skip_type_server_d_h_inner_data (struct paramed_type *T);
+int skip_type_bare_server_d_h_inner_data (struct paramed_type *T);
+int store_type_server_d_h_inner_data (struct paramed_type *T);
+int store_type_bare_server_d_h_inner_data (struct paramed_type *T);
+int fetch_type_server_d_h_inner_data (struct paramed_type *T);
+int fetch_type_bare_server_d_h_inner_data (struct paramed_type *T);
+int autocomplete_type_server_d_h_inner_data (struct paramed_type *T);
+int do_autocomplete_type_server_d_h_inner_data (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_server_d_h_inner_data (struct paramed_type *T);
+int skip_type_set_client_d_h_params_answer (struct paramed_type *T);
+int skip_type_bare_set_client_d_h_params_answer (struct paramed_type *T);
+int store_type_set_client_d_h_params_answer (struct paramed_type *T);
+int store_type_bare_set_client_d_h_params_answer (struct paramed_type *T);
+int fetch_type_set_client_d_h_params_answer (struct paramed_type *T);
+int fetch_type_bare_set_client_d_h_params_answer (struct paramed_type *T);
+int autocomplete_type_set_client_d_h_params_answer (struct paramed_type *T);
+int do_autocomplete_type_set_client_d_h_params_answer (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_set_client_d_h_params_answer (struct paramed_type *T);
+int skip_type_sticker_pack (struct paramed_type *T);
+int skip_type_bare_sticker_pack (struct paramed_type *T);
+int store_type_sticker_pack (struct paramed_type *T);
+int store_type_bare_sticker_pack (struct paramed_type *T);
+int fetch_type_sticker_pack (struct paramed_type *T);
+int fetch_type_bare_sticker_pack (struct paramed_type *T);
+int autocomplete_type_sticker_pack (struct paramed_type *T);
+int do_autocomplete_type_sticker_pack (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_sticker_pack (struct paramed_type *T);
+int skip_type_string (struct paramed_type *T);
+int skip_type_bare_string (struct paramed_type *T);
+int store_type_string (struct paramed_type *T);
+int store_type_bare_string (struct paramed_type *T);
+int fetch_type_string (struct paramed_type *T);
+int fetch_type_bare_string (struct paramed_type *T);
+int autocomplete_type_string (struct paramed_type *T);
+int do_autocomplete_type_string (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_string (struct paramed_type *T);
+int skip_type_update (struct paramed_type *T);
+int skip_type_bare_update (struct paramed_type *T);
+int store_type_update (struct paramed_type *T);
+int store_type_bare_update (struct paramed_type *T);
+int fetch_type_update (struct paramed_type *T);
+int fetch_type_bare_update (struct paramed_type *T);
+int autocomplete_type_update (struct paramed_type *T);
+int do_autocomplete_type_update (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_update (struct paramed_type *T);
+int skip_type_updates (struct paramed_type *T);
+int skip_type_bare_updates (struct paramed_type *T);
+int store_type_updates (struct paramed_type *T);
+int store_type_bare_updates (struct paramed_type *T);
+int fetch_type_updates (struct paramed_type *T);
+int fetch_type_bare_updates (struct paramed_type *T);
+int autocomplete_type_updates (struct paramed_type *T);
+int do_autocomplete_type_updates (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_updates (struct paramed_type *T);
+int skip_type_user (struct paramed_type *T);
+int skip_type_bare_user (struct paramed_type *T);
+int store_type_user (struct paramed_type *T);
+int store_type_bare_user (struct paramed_type *T);
+int fetch_type_user (struct paramed_type *T);
+int fetch_type_bare_user (struct paramed_type *T);
+int autocomplete_type_user (struct paramed_type *T);
+int do_autocomplete_type_user (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_user (struct paramed_type *T);
+int skip_type_user_full (struct paramed_type *T);
+int skip_type_bare_user_full (struct paramed_type *T);
+int store_type_user_full (struct paramed_type *T);
+int store_type_bare_user_full (struct paramed_type *T);
+int fetch_type_user_full (struct paramed_type *T);
+int fetch_type_bare_user_full (struct paramed_type *T);
+int autocomplete_type_user_full (struct paramed_type *T);
+int do_autocomplete_type_user_full (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_user_full (struct paramed_type *T);
+int skip_type_user_profile_photo (struct paramed_type *T);
+int skip_type_bare_user_profile_photo (struct paramed_type *T);
+int store_type_user_profile_photo (struct paramed_type *T);
+int store_type_bare_user_profile_photo (struct paramed_type *T);
+int fetch_type_user_profile_photo (struct paramed_type *T);
+int fetch_type_bare_user_profile_photo (struct paramed_type *T);
+int autocomplete_type_user_profile_photo (struct paramed_type *T);
+int do_autocomplete_type_user_profile_photo (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_user_profile_photo (struct paramed_type *T);
+int skip_type_user_status (struct paramed_type *T);
+int skip_type_bare_user_status (struct paramed_type *T);
+int store_type_user_status (struct paramed_type *T);
+int store_type_bare_user_status (struct paramed_type *T);
+int fetch_type_user_status (struct paramed_type *T);
+int fetch_type_bare_user_status (struct paramed_type *T);
+int autocomplete_type_user_status (struct paramed_type *T);
+int do_autocomplete_type_user_status (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_user_status (struct paramed_type *T);
+int skip_type_vector (struct paramed_type *T);
+int skip_type_bare_vector (struct paramed_type *T);
+int store_type_vector (struct paramed_type *T);
+int store_type_bare_vector (struct paramed_type *T);
+int fetch_type_vector (struct paramed_type *T);
+int fetch_type_bare_vector (struct paramed_type *T);
+int autocomplete_type_vector (struct paramed_type *T);
+int do_autocomplete_type_vector (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_vector (struct paramed_type *T);
+int skip_type_video (struct paramed_type *T);
+int skip_type_bare_video (struct paramed_type *T);
+int store_type_video (struct paramed_type *T);
+int store_type_bare_video (struct paramed_type *T);
+int fetch_type_video (struct paramed_type *T);
+int fetch_type_bare_video (struct paramed_type *T);
+int autocomplete_type_video (struct paramed_type *T);
+int do_autocomplete_type_video (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_video (struct paramed_type *T);
+int skip_type_wall_paper (struct paramed_type *T);
+int skip_type_bare_wall_paper (struct paramed_type *T);
+int store_type_wall_paper (struct paramed_type *T);
+int store_type_bare_wall_paper (struct paramed_type *T);
+int fetch_type_wall_paper (struct paramed_type *T);
+int fetch_type_bare_wall_paper (struct paramed_type *T);
+int autocomplete_type_wall_paper (struct paramed_type *T);
+int do_autocomplete_type_wall_paper (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_wall_paper (struct paramed_type *T);
+int skip_type_account_password (struct paramed_type *T);
+int skip_type_bare_account_password (struct paramed_type *T);
+int store_type_account_password (struct paramed_type *T);
+int store_type_bare_account_password (struct paramed_type *T);
+int fetch_type_account_password (struct paramed_type *T);
+int fetch_type_bare_account_password (struct paramed_type *T);
+int autocomplete_type_account_password (struct paramed_type *T);
+int do_autocomplete_type_account_password (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_account_password (struct paramed_type *T);
+int skip_type_account_privacy_rules (struct paramed_type *T);
+int skip_type_bare_account_privacy_rules (struct paramed_type *T);
+int store_type_account_privacy_rules (struct paramed_type *T);
+int store_type_bare_account_privacy_rules (struct paramed_type *T);
+int fetch_type_account_privacy_rules (struct paramed_type *T);
+int fetch_type_bare_account_privacy_rules (struct paramed_type *T);
+int autocomplete_type_account_privacy_rules (struct paramed_type *T);
+int do_autocomplete_type_account_privacy_rules (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_account_privacy_rules (struct paramed_type *T);
+int skip_type_account_sent_change_phone_code (struct paramed_type *T);
+int skip_type_bare_account_sent_change_phone_code (struct paramed_type *T);
+int store_type_account_sent_change_phone_code (struct paramed_type *T);
+int store_type_bare_account_sent_change_phone_code (struct paramed_type *T);
+int fetch_type_account_sent_change_phone_code (struct paramed_type *T);
+int fetch_type_bare_account_sent_change_phone_code (struct paramed_type *T);
+int autocomplete_type_account_sent_change_phone_code (struct paramed_type *T);
+int do_autocomplete_type_account_sent_change_phone_code (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_account_sent_change_phone_code (struct paramed_type *T);
+int skip_type_auth_authorization (struct paramed_type *T);
+int skip_type_bare_auth_authorization (struct paramed_type *T);
+int store_type_auth_authorization (struct paramed_type *T);
+int store_type_bare_auth_authorization (struct paramed_type *T);
+int fetch_type_auth_authorization (struct paramed_type *T);
+int fetch_type_bare_auth_authorization (struct paramed_type *T);
+int autocomplete_type_auth_authorization (struct paramed_type *T);
+int do_autocomplete_type_auth_authorization (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_auth_authorization (struct paramed_type *T);
+int skip_type_auth_checked_phone (struct paramed_type *T);
+int skip_type_bare_auth_checked_phone (struct paramed_type *T);
+int store_type_auth_checked_phone (struct paramed_type *T);
+int store_type_bare_auth_checked_phone (struct paramed_type *T);
+int fetch_type_auth_checked_phone (struct paramed_type *T);
+int fetch_type_bare_auth_checked_phone (struct paramed_type *T);
+int autocomplete_type_auth_checked_phone (struct paramed_type *T);
+int do_autocomplete_type_auth_checked_phone (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_auth_checked_phone (struct paramed_type *T);
+int skip_type_auth_exported_authorization (struct paramed_type *T);
+int skip_type_bare_auth_exported_authorization (struct paramed_type *T);
+int store_type_auth_exported_authorization (struct paramed_type *T);
+int store_type_bare_auth_exported_authorization (struct paramed_type *T);
+int fetch_type_auth_exported_authorization (struct paramed_type *T);
+int fetch_type_bare_auth_exported_authorization (struct paramed_type *T);
+int autocomplete_type_auth_exported_authorization (struct paramed_type *T);
+int do_autocomplete_type_auth_exported_authorization (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_auth_exported_authorization (struct paramed_type *T);
+int skip_type_auth_sent_code (struct paramed_type *T);
+int skip_type_bare_auth_sent_code (struct paramed_type *T);
+int store_type_auth_sent_code (struct paramed_type *T);
+int store_type_bare_auth_sent_code (struct paramed_type *T);
+int fetch_type_auth_sent_code (struct paramed_type *T);
+int fetch_type_bare_auth_sent_code (struct paramed_type *T);
+int autocomplete_type_auth_sent_code (struct paramed_type *T);
+int do_autocomplete_type_auth_sent_code (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_auth_sent_code (struct paramed_type *T);
+int skip_type_binlog_chat_participant (struct paramed_type *T);
+int skip_type_bare_binlog_chat_participant (struct paramed_type *T);
+int store_type_binlog_chat_participant (struct paramed_type *T);
+int store_type_bare_binlog_chat_participant (struct paramed_type *T);
+int fetch_type_binlog_chat_participant (struct paramed_type *T);
+int fetch_type_bare_binlog_chat_participant (struct paramed_type *T);
+int autocomplete_type_binlog_chat_participant (struct paramed_type *T);
+int do_autocomplete_type_binlog_chat_participant (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_binlog_chat_participant (struct paramed_type *T);
+int skip_type_binlog_file_location (struct paramed_type *T);
+int skip_type_bare_binlog_file_location (struct paramed_type *T);
+int store_type_binlog_file_location (struct paramed_type *T);
+int store_type_bare_binlog_file_location (struct paramed_type *T);
+int fetch_type_binlog_file_location (struct paramed_type *T);
+int fetch_type_bare_binlog_file_location (struct paramed_type *T);
+int autocomplete_type_binlog_file_location (struct paramed_type *T);
+int do_autocomplete_type_binlog_file_location (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_binlog_file_location (struct paramed_type *T);
+int skip_type_binlog_update (struct paramed_type *T);
+int skip_type_bare_binlog_update (struct paramed_type *T);
+int store_type_binlog_update (struct paramed_type *T);
+int store_type_bare_binlog_update (struct paramed_type *T);
+int fetch_type_binlog_update (struct paramed_type *T);
+int fetch_type_bare_binlog_update (struct paramed_type *T);
+int autocomplete_type_binlog_update (struct paramed_type *T);
+int do_autocomplete_type_binlog_update (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_binlog_update (struct paramed_type *T);
+int skip_type_contacts_blocked (struct paramed_type *T);
+int skip_type_bare_contacts_blocked (struct paramed_type *T);
+int store_type_contacts_blocked (struct paramed_type *T);
+int store_type_bare_contacts_blocked (struct paramed_type *T);
+int fetch_type_contacts_blocked (struct paramed_type *T);
+int fetch_type_bare_contacts_blocked (struct paramed_type *T);
+int autocomplete_type_contacts_blocked (struct paramed_type *T);
+int do_autocomplete_type_contacts_blocked (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_contacts_blocked (struct paramed_type *T);
+int skip_type_contacts_contacts (struct paramed_type *T);
+int skip_type_bare_contacts_contacts (struct paramed_type *T);
+int store_type_contacts_contacts (struct paramed_type *T);
+int store_type_bare_contacts_contacts (struct paramed_type *T);
+int fetch_type_contacts_contacts (struct paramed_type *T);
+int fetch_type_bare_contacts_contacts (struct paramed_type *T);
+int autocomplete_type_contacts_contacts (struct paramed_type *T);
+int do_autocomplete_type_contacts_contacts (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_contacts_contacts (struct paramed_type *T);
+int skip_type_contacts_foreign_link (struct paramed_type *T);
+int skip_type_bare_contacts_foreign_link (struct paramed_type *T);
+int store_type_contacts_foreign_link (struct paramed_type *T);
+int store_type_bare_contacts_foreign_link (struct paramed_type *T);
+int fetch_type_contacts_foreign_link (struct paramed_type *T);
+int fetch_type_bare_contacts_foreign_link (struct paramed_type *T);
+int autocomplete_type_contacts_foreign_link (struct paramed_type *T);
+int do_autocomplete_type_contacts_foreign_link (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_contacts_foreign_link (struct paramed_type *T);
+int skip_type_contacts_found (struct paramed_type *T);
+int skip_type_bare_contacts_found (struct paramed_type *T);
+int store_type_contacts_found (struct paramed_type *T);
+int store_type_bare_contacts_found (struct paramed_type *T);
+int fetch_type_contacts_found (struct paramed_type *T);
+int fetch_type_bare_contacts_found (struct paramed_type *T);
+int autocomplete_type_contacts_found (struct paramed_type *T);
+int do_autocomplete_type_contacts_found (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_contacts_found (struct paramed_type *T);
+int skip_type_contacts_imported_contacts (struct paramed_type *T);
+int skip_type_bare_contacts_imported_contacts (struct paramed_type *T);
+int store_type_contacts_imported_contacts (struct paramed_type *T);
+int store_type_bare_contacts_imported_contacts (struct paramed_type *T);
+int fetch_type_contacts_imported_contacts (struct paramed_type *T);
+int fetch_type_bare_contacts_imported_contacts (struct paramed_type *T);
+int autocomplete_type_contacts_imported_contacts (struct paramed_type *T);
+int do_autocomplete_type_contacts_imported_contacts (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_contacts_imported_contacts (struct paramed_type *T);
+int skip_type_contacts_link (struct paramed_type *T);
+int skip_type_bare_contacts_link (struct paramed_type *T);
+int store_type_contacts_link (struct paramed_type *T);
+int store_type_bare_contacts_link (struct paramed_type *T);
+int fetch_type_contacts_link (struct paramed_type *T);
+int fetch_type_bare_contacts_link (struct paramed_type *T);
+int autocomplete_type_contacts_link (struct paramed_type *T);
+int do_autocomplete_type_contacts_link (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_contacts_link (struct paramed_type *T);
+int skip_type_contacts_my_link (struct paramed_type *T);
+int skip_type_bare_contacts_my_link (struct paramed_type *T);
+int store_type_contacts_my_link (struct paramed_type *T);
+int store_type_bare_contacts_my_link (struct paramed_type *T);
+int fetch_type_contacts_my_link (struct paramed_type *T);
+int fetch_type_bare_contacts_my_link (struct paramed_type *T);
+int autocomplete_type_contacts_my_link (struct paramed_type *T);
+int do_autocomplete_type_contacts_my_link (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_contacts_my_link (struct paramed_type *T);
+int skip_type_contacts_suggested (struct paramed_type *T);
+int skip_type_bare_contacts_suggested (struct paramed_type *T);
+int store_type_contacts_suggested (struct paramed_type *T);
+int store_type_bare_contacts_suggested (struct paramed_type *T);
+int fetch_type_contacts_suggested (struct paramed_type *T);
+int fetch_type_bare_contacts_suggested (struct paramed_type *T);
+int autocomplete_type_contacts_suggested (struct paramed_type *T);
+int do_autocomplete_type_contacts_suggested (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_contacts_suggested (struct paramed_type *T);
+int skip_type_geochats_located (struct paramed_type *T);
+int skip_type_bare_geochats_located (struct paramed_type *T);
+int store_type_geochats_located (struct paramed_type *T);
+int store_type_bare_geochats_located (struct paramed_type *T);
+int fetch_type_geochats_located (struct paramed_type *T);
+int fetch_type_bare_geochats_located (struct paramed_type *T);
+int autocomplete_type_geochats_located (struct paramed_type *T);
+int do_autocomplete_type_geochats_located (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_geochats_located (struct paramed_type *T);
+int skip_type_geochats_messages (struct paramed_type *T);
+int skip_type_bare_geochats_messages (struct paramed_type *T);
+int store_type_geochats_messages (struct paramed_type *T);
+int store_type_bare_geochats_messages (struct paramed_type *T);
+int fetch_type_geochats_messages (struct paramed_type *T);
+int fetch_type_bare_geochats_messages (struct paramed_type *T);
+int autocomplete_type_geochats_messages (struct paramed_type *T);
+int do_autocomplete_type_geochats_messages (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_geochats_messages (struct paramed_type *T);
+int skip_type_geochats_stated_message (struct paramed_type *T);
+int skip_type_bare_geochats_stated_message (struct paramed_type *T);
+int store_type_geochats_stated_message (struct paramed_type *T);
+int store_type_bare_geochats_stated_message (struct paramed_type *T);
+int fetch_type_geochats_stated_message (struct paramed_type *T);
+int fetch_type_bare_geochats_stated_message (struct paramed_type *T);
+int autocomplete_type_geochats_stated_message (struct paramed_type *T);
+int do_autocomplete_type_geochats_stated_message (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_geochats_stated_message (struct paramed_type *T);
+int skip_type_help_app_update (struct paramed_type *T);
+int skip_type_bare_help_app_update (struct paramed_type *T);
+int store_type_help_app_update (struct paramed_type *T);
+int store_type_bare_help_app_update (struct paramed_type *T);
+int fetch_type_help_app_update (struct paramed_type *T);
+int fetch_type_bare_help_app_update (struct paramed_type *T);
+int autocomplete_type_help_app_update (struct paramed_type *T);
+int do_autocomplete_type_help_app_update (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_help_app_update (struct paramed_type *T);
+int skip_type_help_invite_text (struct paramed_type *T);
+int skip_type_bare_help_invite_text (struct paramed_type *T);
+int store_type_help_invite_text (struct paramed_type *T);
+int store_type_bare_help_invite_text (struct paramed_type *T);
+int fetch_type_help_invite_text (struct paramed_type *T);
+int fetch_type_bare_help_invite_text (struct paramed_type *T);
+int autocomplete_type_help_invite_text (struct paramed_type *T);
+int do_autocomplete_type_help_invite_text (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_help_invite_text (struct paramed_type *T);
+int skip_type_help_support (struct paramed_type *T);
+int skip_type_bare_help_support (struct paramed_type *T);
+int store_type_help_support (struct paramed_type *T);
+int store_type_bare_help_support (struct paramed_type *T);
+int fetch_type_help_support (struct paramed_type *T);
+int fetch_type_bare_help_support (struct paramed_type *T);
+int autocomplete_type_help_support (struct paramed_type *T);
+int do_autocomplete_type_help_support (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_help_support (struct paramed_type *T);
+int skip_type_messages_affected_history (struct paramed_type *T);
+int skip_type_bare_messages_affected_history (struct paramed_type *T);
+int store_type_messages_affected_history (struct paramed_type *T);
+int store_type_bare_messages_affected_history (struct paramed_type *T);
+int fetch_type_messages_affected_history (struct paramed_type *T);
+int fetch_type_bare_messages_affected_history (struct paramed_type *T);
+int autocomplete_type_messages_affected_history (struct paramed_type *T);
+int do_autocomplete_type_messages_affected_history (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_messages_affected_history (struct paramed_type *T);
+int skip_type_messages_all_stickers (struct paramed_type *T);
+int skip_type_bare_messages_all_stickers (struct paramed_type *T);
+int store_type_messages_all_stickers (struct paramed_type *T);
+int store_type_bare_messages_all_stickers (struct paramed_type *T);
+int fetch_type_messages_all_stickers (struct paramed_type *T);
+int fetch_type_bare_messages_all_stickers (struct paramed_type *T);
+int autocomplete_type_messages_all_stickers (struct paramed_type *T);
+int do_autocomplete_type_messages_all_stickers (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_messages_all_stickers (struct paramed_type *T);
+int skip_type_messages_chat (struct paramed_type *T);
+int skip_type_bare_messages_chat (struct paramed_type *T);
+int store_type_messages_chat (struct paramed_type *T);
+int store_type_bare_messages_chat (struct paramed_type *T);
+int fetch_type_messages_chat (struct paramed_type *T);
+int fetch_type_bare_messages_chat (struct paramed_type *T);
+int autocomplete_type_messages_chat (struct paramed_type *T);
+int do_autocomplete_type_messages_chat (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_messages_chat (struct paramed_type *T);
+int skip_type_messages_chat_full (struct paramed_type *T);
+int skip_type_bare_messages_chat_full (struct paramed_type *T);
+int store_type_messages_chat_full (struct paramed_type *T);
+int store_type_bare_messages_chat_full (struct paramed_type *T);
+int fetch_type_messages_chat_full (struct paramed_type *T);
+int fetch_type_bare_messages_chat_full (struct paramed_type *T);
+int autocomplete_type_messages_chat_full (struct paramed_type *T);
+int do_autocomplete_type_messages_chat_full (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_messages_chat_full (struct paramed_type *T);
+int skip_type_messages_chats (struct paramed_type *T);
+int skip_type_bare_messages_chats (struct paramed_type *T);
+int store_type_messages_chats (struct paramed_type *T);
+int store_type_bare_messages_chats (struct paramed_type *T);
+int fetch_type_messages_chats (struct paramed_type *T);
+int fetch_type_bare_messages_chats (struct paramed_type *T);
+int autocomplete_type_messages_chats (struct paramed_type *T);
+int do_autocomplete_type_messages_chats (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_messages_chats (struct paramed_type *T);
+int skip_type_messages_dh_config (struct paramed_type *T);
+int skip_type_bare_messages_dh_config (struct paramed_type *T);
+int store_type_messages_dh_config (struct paramed_type *T);
+int store_type_bare_messages_dh_config (struct paramed_type *T);
+int fetch_type_messages_dh_config (struct paramed_type *T);
+int fetch_type_bare_messages_dh_config (struct paramed_type *T);
+int autocomplete_type_messages_dh_config (struct paramed_type *T);
+int do_autocomplete_type_messages_dh_config (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_messages_dh_config (struct paramed_type *T);
+int skip_type_messages_dialogs (struct paramed_type *T);
+int skip_type_bare_messages_dialogs (struct paramed_type *T);
+int store_type_messages_dialogs (struct paramed_type *T);
+int store_type_bare_messages_dialogs (struct paramed_type *T);
+int fetch_type_messages_dialogs (struct paramed_type *T);
+int fetch_type_bare_messages_dialogs (struct paramed_type *T);
+int autocomplete_type_messages_dialogs (struct paramed_type *T);
+int do_autocomplete_type_messages_dialogs (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_messages_dialogs (struct paramed_type *T);
+int skip_type_messages_message (struct paramed_type *T);
+int skip_type_bare_messages_message (struct paramed_type *T);
+int store_type_messages_message (struct paramed_type *T);
+int store_type_bare_messages_message (struct paramed_type *T);
+int fetch_type_messages_message (struct paramed_type *T);
+int fetch_type_bare_messages_message (struct paramed_type *T);
+int autocomplete_type_messages_message (struct paramed_type *T);
+int do_autocomplete_type_messages_message (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_messages_message (struct paramed_type *T);
+int skip_type_messages_messages (struct paramed_type *T);
+int skip_type_bare_messages_messages (struct paramed_type *T);
+int store_type_messages_messages (struct paramed_type *T);
+int store_type_bare_messages_messages (struct paramed_type *T);
+int fetch_type_messages_messages (struct paramed_type *T);
+int fetch_type_bare_messages_messages (struct paramed_type *T);
+int autocomplete_type_messages_messages (struct paramed_type *T);
+int do_autocomplete_type_messages_messages (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_messages_messages (struct paramed_type *T);
+int skip_type_messages_sent_encrypted_message (struct paramed_type *T);
+int skip_type_bare_messages_sent_encrypted_message (struct paramed_type *T);
+int store_type_messages_sent_encrypted_message (struct paramed_type *T);
+int store_type_bare_messages_sent_encrypted_message (struct paramed_type *T);
+int fetch_type_messages_sent_encrypted_message (struct paramed_type *T);
+int fetch_type_bare_messages_sent_encrypted_message (struct paramed_type *T);
+int autocomplete_type_messages_sent_encrypted_message (struct paramed_type *T);
+int do_autocomplete_type_messages_sent_encrypted_message (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_messages_sent_encrypted_message (struct paramed_type *T);
+int skip_type_messages_sent_message (struct paramed_type *T);
+int skip_type_bare_messages_sent_message (struct paramed_type *T);
+int store_type_messages_sent_message (struct paramed_type *T);
+int store_type_bare_messages_sent_message (struct paramed_type *T);
+int fetch_type_messages_sent_message (struct paramed_type *T);
+int fetch_type_bare_messages_sent_message (struct paramed_type *T);
+int autocomplete_type_messages_sent_message (struct paramed_type *T);
+int do_autocomplete_type_messages_sent_message (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_messages_sent_message (struct paramed_type *T);
+int skip_type_messages_stated_message (struct paramed_type *T);
+int skip_type_bare_messages_stated_message (struct paramed_type *T);
+int store_type_messages_stated_message (struct paramed_type *T);
+int store_type_bare_messages_stated_message (struct paramed_type *T);
+int fetch_type_messages_stated_message (struct paramed_type *T);
+int fetch_type_bare_messages_stated_message (struct paramed_type *T);
+int autocomplete_type_messages_stated_message (struct paramed_type *T);
+int do_autocomplete_type_messages_stated_message (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_messages_stated_message (struct paramed_type *T);
+int skip_type_messages_stated_messages (struct paramed_type *T);
+int skip_type_bare_messages_stated_messages (struct paramed_type *T);
+int store_type_messages_stated_messages (struct paramed_type *T);
+int store_type_bare_messages_stated_messages (struct paramed_type *T);
+int fetch_type_messages_stated_messages (struct paramed_type *T);
+int fetch_type_bare_messages_stated_messages (struct paramed_type *T);
+int autocomplete_type_messages_stated_messages (struct paramed_type *T);
+int do_autocomplete_type_messages_stated_messages (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_messages_stated_messages (struct paramed_type *T);
+int skip_type_messages_stickers (struct paramed_type *T);
+int skip_type_bare_messages_stickers (struct paramed_type *T);
+int store_type_messages_stickers (struct paramed_type *T);
+int store_type_bare_messages_stickers (struct paramed_type *T);
+int fetch_type_messages_stickers (struct paramed_type *T);
+int fetch_type_bare_messages_stickers (struct paramed_type *T);
+int autocomplete_type_messages_stickers (struct paramed_type *T);
+int do_autocomplete_type_messages_stickers (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_messages_stickers (struct paramed_type *T);
+int skip_type_photos_photo (struct paramed_type *T);
+int skip_type_bare_photos_photo (struct paramed_type *T);
+int store_type_photos_photo (struct paramed_type *T);
+int store_type_bare_photos_photo (struct paramed_type *T);
+int fetch_type_photos_photo (struct paramed_type *T);
+int fetch_type_bare_photos_photo (struct paramed_type *T);
+int autocomplete_type_photos_photo (struct paramed_type *T);
+int do_autocomplete_type_photos_photo (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_photos_photo (struct paramed_type *T);
+int skip_type_photos_photos (struct paramed_type *T);
+int skip_type_bare_photos_photos (struct paramed_type *T);
+int store_type_photos_photos (struct paramed_type *T);
+int store_type_bare_photos_photos (struct paramed_type *T);
+int fetch_type_photos_photos (struct paramed_type *T);
+int fetch_type_bare_photos_photos (struct paramed_type *T);
+int autocomplete_type_photos_photos (struct paramed_type *T);
+int do_autocomplete_type_photos_photos (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_photos_photos (struct paramed_type *T);
+int skip_type_storage_file_type (struct paramed_type *T);
+int skip_type_bare_storage_file_type (struct paramed_type *T);
+int store_type_storage_file_type (struct paramed_type *T);
+int store_type_bare_storage_file_type (struct paramed_type *T);
+int fetch_type_storage_file_type (struct paramed_type *T);
+int fetch_type_bare_storage_file_type (struct paramed_type *T);
+int autocomplete_type_storage_file_type (struct paramed_type *T);
+int do_autocomplete_type_storage_file_type (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_storage_file_type (struct paramed_type *T);
+int skip_type_updates_difference (struct paramed_type *T);
+int skip_type_bare_updates_difference (struct paramed_type *T);
+int store_type_updates_difference (struct paramed_type *T);
+int store_type_bare_updates_difference (struct paramed_type *T);
+int fetch_type_updates_difference (struct paramed_type *T);
+int fetch_type_bare_updates_difference (struct paramed_type *T);
+int autocomplete_type_updates_difference (struct paramed_type *T);
+int do_autocomplete_type_updates_difference (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_updates_difference (struct paramed_type *T);
+int skip_type_updates_state (struct paramed_type *T);
+int skip_type_bare_updates_state (struct paramed_type *T);
+int store_type_updates_state (struct paramed_type *T);
+int store_type_bare_updates_state (struct paramed_type *T);
+int fetch_type_updates_state (struct paramed_type *T);
+int fetch_type_bare_updates_state (struct paramed_type *T);
+int autocomplete_type_updates_state (struct paramed_type *T);
+int do_autocomplete_type_updates_state (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_updates_state (struct paramed_type *T);
+int skip_type_upload_file (struct paramed_type *T);
+int skip_type_bare_upload_file (struct paramed_type *T);
+int store_type_upload_file (struct paramed_type *T);
+int store_type_bare_upload_file (struct paramed_type *T);
+int fetch_type_upload_file (struct paramed_type *T);
+int fetch_type_bare_upload_file (struct paramed_type *T);
+int autocomplete_type_upload_file (struct paramed_type *T);
+int do_autocomplete_type_upload_file (const char *text, int len, int index, char **R);
+int autocomplete_type_bare_upload_file (struct paramed_type *T);
+struct paramed_type *store_function_account_change_phone (void);
+struct paramed_type *autocomplete_function_account_change_phone (void);
+struct paramed_type *store_function_account_check_username (void);
+struct paramed_type *autocomplete_function_account_check_username (void);
+struct paramed_type *store_function_account_delete_account (void);
+struct paramed_type *autocomplete_function_account_delete_account (void);
+struct paramed_type *store_function_account_get_account_t_t_l (void);
+struct paramed_type *autocomplete_function_account_get_account_t_t_l (void);
+struct paramed_type *store_function_account_get_notify_settings (void);
+struct paramed_type *autocomplete_function_account_get_notify_settings (void);
+struct paramed_type *store_function_account_get_password (void);
+struct paramed_type *autocomplete_function_account_get_password (void);
+struct paramed_type *store_function_account_get_privacy (void);
+struct paramed_type *autocomplete_function_account_get_privacy (void);
+struct paramed_type *store_function_account_get_wall_papers (void);
+struct paramed_type *autocomplete_function_account_get_wall_papers (void);
+struct paramed_type *store_function_account_register_device (void);
+struct paramed_type *autocomplete_function_account_register_device (void);
+struct paramed_type *store_function_account_reset_notify_settings (void);
+struct paramed_type *autocomplete_function_account_reset_notify_settings (void);
+struct paramed_type *store_function_account_send_change_phone_code (void);
+struct paramed_type *autocomplete_function_account_send_change_phone_code (void);
+struct paramed_type *store_function_account_set_account_t_t_l (void);
+struct paramed_type *autocomplete_function_account_set_account_t_t_l (void);
+struct paramed_type *store_function_account_set_password (void);
+struct paramed_type *autocomplete_function_account_set_password (void);
+struct paramed_type *store_function_account_set_privacy (void);
+struct paramed_type *autocomplete_function_account_set_privacy (void);
+struct paramed_type *store_function_account_unregister_device (void);
+struct paramed_type *autocomplete_function_account_unregister_device (void);
+struct paramed_type *store_function_account_update_notify_settings (void);
+struct paramed_type *autocomplete_function_account_update_notify_settings (void);
+struct paramed_type *store_function_account_update_profile (void);
+struct paramed_type *autocomplete_function_account_update_profile (void);
+struct paramed_type *store_function_account_update_status (void);
+struct paramed_type *autocomplete_function_account_update_status (void);
+struct paramed_type *store_function_account_update_username (void);
+struct paramed_type *autocomplete_function_account_update_username (void);
+struct paramed_type *store_function_auth_bind_temp_auth_key (void);
+struct paramed_type *autocomplete_function_auth_bind_temp_auth_key (void);
+struct paramed_type *store_function_auth_check_password (void);
+struct paramed_type *autocomplete_function_auth_check_password (void);
+struct paramed_type *store_function_auth_check_phone (void);
+struct paramed_type *autocomplete_function_auth_check_phone (void);
+struct paramed_type *store_function_auth_export_authorization (void);
+struct paramed_type *autocomplete_function_auth_export_authorization (void);
+struct paramed_type *store_function_auth_import_authorization (void);
+struct paramed_type *autocomplete_function_auth_import_authorization (void);
+struct paramed_type *store_function_auth_log_out (void);
+struct paramed_type *autocomplete_function_auth_log_out (void);
+struct paramed_type *store_function_auth_reset_authorizations (void);
+struct paramed_type *autocomplete_function_auth_reset_authorizations (void);
+struct paramed_type *store_function_auth_send_call (void);
+struct paramed_type *autocomplete_function_auth_send_call (void);
+struct paramed_type *store_function_auth_send_code (void);
+struct paramed_type *autocomplete_function_auth_send_code (void);
+struct paramed_type *store_function_auth_send_invites (void);
+struct paramed_type *autocomplete_function_auth_send_invites (void);
+struct paramed_type *store_function_auth_send_sms (void);
+struct paramed_type *autocomplete_function_auth_send_sms (void);
+struct paramed_type *store_function_auth_sign_in (void);
+struct paramed_type *autocomplete_function_auth_sign_in (void);
+struct paramed_type *store_function_auth_sign_up (void);
+struct paramed_type *autocomplete_function_auth_sign_up (void);
+struct paramed_type *store_function_contacts_block (void);
+struct paramed_type *autocomplete_function_contacts_block (void);
+struct paramed_type *store_function_contacts_delete_contact (void);
+struct paramed_type *autocomplete_function_contacts_delete_contact (void);
+struct paramed_type *store_function_contacts_delete_contacts (void);
+struct paramed_type *autocomplete_function_contacts_delete_contacts (void);
+struct paramed_type *store_function_contacts_export_card (void);
+struct paramed_type *autocomplete_function_contacts_export_card (void);
+struct paramed_type *store_function_contacts_get_blocked (void);
+struct paramed_type *autocomplete_function_contacts_get_blocked (void);
+struct paramed_type *store_function_contacts_get_contacts (void);
+struct paramed_type *autocomplete_function_contacts_get_contacts (void);
+struct paramed_type *store_function_contacts_get_statuses (void);
+struct paramed_type *autocomplete_function_contacts_get_statuses (void);
+struct paramed_type *store_function_contacts_get_suggested (void);
+struct paramed_type *autocomplete_function_contacts_get_suggested (void);
+struct paramed_type *store_function_contacts_import_card (void);
+struct paramed_type *autocomplete_function_contacts_import_card (void);
+struct paramed_type *store_function_contacts_import_contacts (void);
+struct paramed_type *autocomplete_function_contacts_import_contacts (void);
+struct paramed_type *store_function_contacts_resolve_username (void);
+struct paramed_type *autocomplete_function_contacts_resolve_username (void);
+struct paramed_type *store_function_contacts_search (void);
+struct paramed_type *autocomplete_function_contacts_search (void);
+struct paramed_type *store_function_contacts_unblock (void);
+struct paramed_type *autocomplete_function_contacts_unblock (void);
+struct paramed_type *store_function_decrypted_message_media_audio_l12 (void);
+struct paramed_type *autocomplete_function_decrypted_message_media_audio_l12 (void);
+struct paramed_type *store_function_decrypted_message_media_video_l12 (void);
+struct paramed_type *autocomplete_function_decrypted_message_media_video_l12 (void);
+struct paramed_type *store_function_geochats_checkin (void);
+struct paramed_type *autocomplete_function_geochats_checkin (void);
+struct paramed_type *store_function_geochats_create_geo_chat (void);
+struct paramed_type *autocomplete_function_geochats_create_geo_chat (void);
+struct paramed_type *store_function_geochats_edit_chat_photo (void);
+struct paramed_type *autocomplete_function_geochats_edit_chat_photo (void);
+struct paramed_type *store_function_geochats_edit_chat_title (void);
+struct paramed_type *autocomplete_function_geochats_edit_chat_title (void);
+struct paramed_type *store_function_geochats_get_full_chat (void);
+struct paramed_type *autocomplete_function_geochats_get_full_chat (void);
+struct paramed_type *store_function_geochats_get_history (void);
+struct paramed_type *autocomplete_function_geochats_get_history (void);
+struct paramed_type *store_function_geochats_get_located (void);
+struct paramed_type *autocomplete_function_geochats_get_located (void);
+struct paramed_type *store_function_geochats_get_recents (void);
+struct paramed_type *autocomplete_function_geochats_get_recents (void);
+struct paramed_type *store_function_geochats_search (void);
+struct paramed_type *autocomplete_function_geochats_search (void);
+struct paramed_type *store_function_geochats_send_media (void);
+struct paramed_type *autocomplete_function_geochats_send_media (void);
+struct paramed_type *store_function_geochats_send_message (void);
+struct paramed_type *autocomplete_function_geochats_send_message (void);
+struct paramed_type *store_function_geochats_set_typing (void);
+struct paramed_type *autocomplete_function_geochats_set_typing (void);
+struct paramed_type *store_function_help_get_app_update (void);
+struct paramed_type *autocomplete_function_help_get_app_update (void);
+struct paramed_type *store_function_help_get_config (void);
+struct paramed_type *autocomplete_function_help_get_config (void);
+struct paramed_type *store_function_help_get_invite_text (void);
+struct paramed_type *autocomplete_function_help_get_invite_text (void);
+struct paramed_type *store_function_help_get_nearest_dc (void);
+struct paramed_type *autocomplete_function_help_get_nearest_dc (void);
+struct paramed_type *store_function_help_get_support (void);
+struct paramed_type *autocomplete_function_help_get_support (void);
+struct paramed_type *store_function_help_save_app_log (void);
+struct paramed_type *autocomplete_function_help_save_app_log (void);
+struct paramed_type *store_function_init_connection (void);
+struct paramed_type *autocomplete_function_init_connection (void);
+struct paramed_type *store_function_invoke_after_msg (void);
+struct paramed_type *autocomplete_function_invoke_after_msg (void);
+struct paramed_type *store_function_invoke_after_msgs (void);
+struct paramed_type *autocomplete_function_invoke_after_msgs (void);
+struct paramed_type *store_function_invoke_with_layer (void);
+struct paramed_type *autocomplete_function_invoke_with_layer (void);
+struct paramed_type *store_function_messages_accept_encryption (void);
+struct paramed_type *autocomplete_function_messages_accept_encryption (void);
+struct paramed_type *store_function_messages_add_chat_user (void);
+struct paramed_type *autocomplete_function_messages_add_chat_user (void);
+struct paramed_type *store_function_messages_create_chat (void);
+struct paramed_type *autocomplete_function_messages_create_chat (void);
+struct paramed_type *store_function_messages_delete_chat_user (void);
+struct paramed_type *autocomplete_function_messages_delete_chat_user (void);
+struct paramed_type *store_function_messages_delete_history (void);
+struct paramed_type *autocomplete_function_messages_delete_history (void);
+struct paramed_type *store_function_messages_delete_messages (void);
+struct paramed_type *autocomplete_function_messages_delete_messages (void);
+struct paramed_type *store_function_messages_discard_encryption (void);
+struct paramed_type *autocomplete_function_messages_discard_encryption (void);
+struct paramed_type *store_function_messages_edit_chat_photo (void);
+struct paramed_type *autocomplete_function_messages_edit_chat_photo (void);
+struct paramed_type *store_function_messages_edit_chat_title (void);
+struct paramed_type *autocomplete_function_messages_edit_chat_title (void);
+struct paramed_type *store_function_messages_forward_message (void);
+struct paramed_type *autocomplete_function_messages_forward_message (void);
+struct paramed_type *store_function_messages_forward_messages (void);
+struct paramed_type *autocomplete_function_messages_forward_messages (void);
+struct paramed_type *store_function_messages_get_all_stickers (void);
+struct paramed_type *autocomplete_function_messages_get_all_stickers (void);
+struct paramed_type *store_function_messages_get_chats (void);
+struct paramed_type *autocomplete_function_messages_get_chats (void);
+struct paramed_type *store_function_messages_get_dh_config (void);
+struct paramed_type *autocomplete_function_messages_get_dh_config (void);
+struct paramed_type *store_function_messages_get_dialogs (void);
+struct paramed_type *autocomplete_function_messages_get_dialogs (void);
+struct paramed_type *store_function_messages_get_full_chat (void);
+struct paramed_type *autocomplete_function_messages_get_full_chat (void);
+struct paramed_type *store_function_messages_get_history (void);
+struct paramed_type *autocomplete_function_messages_get_history (void);
+struct paramed_type *store_function_messages_get_messages (void);
+struct paramed_type *autocomplete_function_messages_get_messages (void);
+struct paramed_type *store_function_messages_get_stickers (void);
+struct paramed_type *autocomplete_function_messages_get_stickers (void);
+struct paramed_type *store_function_messages_read_encrypted_history (void);
+struct paramed_type *autocomplete_function_messages_read_encrypted_history (void);
+struct paramed_type *store_function_messages_read_history (void);
+struct paramed_type *autocomplete_function_messages_read_history (void);
+struct paramed_type *store_function_messages_read_message_contents (void);
+struct paramed_type *autocomplete_function_messages_read_message_contents (void);
+struct paramed_type *store_function_messages_received_messages (void);
+struct paramed_type *autocomplete_function_messages_received_messages (void);
+struct paramed_type *store_function_messages_received_queue (void);
+struct paramed_type *autocomplete_function_messages_received_queue (void);
+struct paramed_type *store_function_messages_request_encryption (void);
+struct paramed_type *autocomplete_function_messages_request_encryption (void);
+struct paramed_type *store_function_messages_restore_messages (void);
+struct paramed_type *autocomplete_function_messages_restore_messages (void);
+struct paramed_type *store_function_messages_search (void);
+struct paramed_type *autocomplete_function_messages_search (void);
+struct paramed_type *store_function_messages_send_broadcast (void);
+struct paramed_type *autocomplete_function_messages_send_broadcast (void);
+struct paramed_type *store_function_messages_send_encrypted (void);
+struct paramed_type *autocomplete_function_messages_send_encrypted (void);
+struct paramed_type *store_function_messages_send_encrypted_file (void);
+struct paramed_type *autocomplete_function_messages_send_encrypted_file (void);
+struct paramed_type *store_function_messages_send_encrypted_service (void);
+struct paramed_type *autocomplete_function_messages_send_encrypted_service (void);
+struct paramed_type *store_function_messages_send_media (void);
+struct paramed_type *autocomplete_function_messages_send_media (void);
+struct paramed_type *store_function_messages_send_message (void);
+struct paramed_type *autocomplete_function_messages_send_message (void);
+struct paramed_type *store_function_messages_set_encrypted_typing (void);
+struct paramed_type *autocomplete_function_messages_set_encrypted_typing (void);
+struct paramed_type *store_function_messages_set_typing (void);
+struct paramed_type *autocomplete_function_messages_set_typing (void);
+struct paramed_type *store_function_photos_delete_photos (void);
+struct paramed_type *autocomplete_function_photos_delete_photos (void);
+struct paramed_type *store_function_photos_get_user_photos (void);
+struct paramed_type *autocomplete_function_photos_get_user_photos (void);
+struct paramed_type *store_function_photos_update_profile_photo (void);
+struct paramed_type *autocomplete_function_photos_update_profile_photo (void);
+struct paramed_type *store_function_photos_upload_profile_photo (void);
+struct paramed_type *autocomplete_function_photos_upload_profile_photo (void);
+struct paramed_type *store_function_req_d_h_params (void);
+struct paramed_type *autocomplete_function_req_d_h_params (void);
+struct paramed_type *store_function_req_pq (void);
+struct paramed_type *autocomplete_function_req_pq (void);
+struct paramed_type *store_function_set_client_d_h_params (void);
+struct paramed_type *autocomplete_function_set_client_d_h_params (void);
+struct paramed_type *store_function_updates_get_difference (void);
+struct paramed_type *autocomplete_function_updates_get_difference (void);
+struct paramed_type *store_function_updates_get_state (void);
+struct paramed_type *autocomplete_function_updates_get_state (void);
+struct paramed_type *store_function_upload_get_file (void);
+struct paramed_type *autocomplete_function_upload_get_file (void);
+struct paramed_type *store_function_upload_save_big_file_part (void);
+struct paramed_type *autocomplete_function_upload_save_big_file_part (void);
+struct paramed_type *store_function_upload_save_file_part (void);
+struct paramed_type *autocomplete_function_upload_save_file_part (void);
+struct paramed_type *store_function_users_get_full_user (void);
+struct paramed_type *autocomplete_function_users_get_full_user (void);
+struct paramed_type *store_function_users_get_users (void);
+struct paramed_type *autocomplete_function_users_get_users (void);
+int skip_type_any (struct paramed_type *T);
+int store_type_any (struct paramed_type *T);
+int fetch_type_any (struct paramed_type *T);
+int autocomplete_type_any (struct paramed_type *T);
+struct paramed_type *store_function_any (void);
+struct paramed_type *autocomplete_function_any (void);
+static struct tl_type_descr tl_type_account_days_t_t_l __attribute__ ((unused));
+static struct tl_type_descr tl_type_account_days_t_t_l = {
+               .name = 0xb8d0afdf,
+               .id = "AccountDaysTTL"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_account_days_t_t_l __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_account_days_t_t_l = {
+               .name = 0x472f5020,
+               .id = "Bare_AccountDaysTTL",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_audio __attribute__ ((unused));
+static struct tl_type_descr tl_type_audio = {
+               .name = 0x9fc5ec4e,
+               .id = "Audio"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_audio __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_audio = {
+               .name = 0x603a13b1,
+               .id = "Bare_Audio",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_bool __attribute__ ((unused));
+static struct tl_type_descr tl_type_bool = {
+               .name = 0x250be282,
+               .id = "Bool"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_bool __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_bool = {
+               .name = 0xdaf41d7d,
+               .id = "Bare_Bool",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_bytes __attribute__ ((unused));
+static struct tl_type_descr tl_type_bytes = {
+               .name = 0x0ee1379f,
+               .id = "Bytes"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_bytes __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_bytes = {
+               .name = 0xf11ec860,
+               .id = "Bare_Bytes",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_chat __attribute__ ((unused));
+static struct tl_type_descr tl_type_chat = {
+               .name = 0x7bd865dc,
+               .id = "Chat"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_chat __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_chat = {
+               .name = 0x84279a23,
+               .id = "Bare_Chat",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_chat_full __attribute__ ((unused));
+static struct tl_type_descr tl_type_chat_full = {
+               .name = 0x630e61be,
+               .id = "ChatFull"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_chat_full __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_chat_full = {
+               .name = 0x9cf19e41,
+               .id = "Bare_ChatFull",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_chat_located __attribute__ ((unused));
+static struct tl_type_descr tl_type_chat_located = {
+               .name = 0x3631cf4c,
+               .id = "ChatLocated"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_chat_located __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_chat_located = {
+               .name = 0xc9ce30b3,
+               .id = "Bare_ChatLocated",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_chat_participant __attribute__ ((unused));
+static struct tl_type_descr tl_type_chat_participant = {
+               .name = 0xc8d7493e,
+               .id = "ChatParticipant"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_chat_participant __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_chat_participant = {
+               .name = 0x3728b6c1,
+               .id = "Bare_ChatParticipant",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_chat_participants __attribute__ ((unused));
+static struct tl_type_descr tl_type_chat_participants = {
+               .name = 0x77930f9f,
+               .id = "ChatParticipants"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_chat_participants __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_chat_participants = {
+               .name = 0x886cf060,
+               .id = "Bare_ChatParticipants",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_chat_photo __attribute__ ((unused));
+static struct tl_type_descr tl_type_chat_photo = {
+               .name = 0x56922676,
+               .id = "ChatPhoto"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_chat_photo __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_chat_photo = {
+               .name = 0xa96dd989,
+               .id = "Bare_ChatPhoto",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_client_d_h_inner_data __attribute__ ((unused));
+static struct tl_type_descr tl_type_client_d_h_inner_data = {
+               .name = 0x6643b654,
+               .id = "Client_DH_Inner_Data"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_client_d_h_inner_data __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_client_d_h_inner_data = {
+               .name = 0x99bc49ab,
+               .id = "Bare_Client_DH_Inner_Data",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_config __attribute__ ((unused));
+static struct tl_type_descr tl_type_config = {
+               .name = 0x2e54dd74,
+               .id = "Config"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_config __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_config = {
+               .name = 0xd1ab228b,
+               .id = "Bare_Config",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_contact __attribute__ ((unused));
+static struct tl_type_descr tl_type_contact = {
+               .name = 0xf911c994,
+               .id = "Contact"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_contact __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_contact = {
+               .name = 0x06ee366b,
+               .id = "Bare_Contact",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_contact_blocked __attribute__ ((unused));
+static struct tl_type_descr tl_type_contact_blocked = {
+               .name = 0x561bc879,
+               .id = "ContactBlocked"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_contact_blocked __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_contact_blocked = {
+               .name = 0xa9e43786,
+               .id = "Bare_ContactBlocked",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_contact_found __attribute__ ((unused));
+static struct tl_type_descr tl_type_contact_found = {
+               .name = 0xea879f95,
+               .id = "ContactFound"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_contact_found __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_contact_found = {
+               .name = 0x1578606a,
+               .id = "Bare_ContactFound",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_contact_status __attribute__ ((unused));
+static struct tl_type_descr tl_type_contact_status = {
+               .name = 0xd3680c61,
+               .id = "ContactStatus"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_contact_status __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_contact_status = {
+               .name = 0x2c97f39e,
+               .id = "Bare_ContactStatus",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_contact_suggested __attribute__ ((unused));
+static struct tl_type_descr tl_type_contact_suggested = {
+               .name = 0x3de191a1,
+               .id = "ContactSuggested"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_contact_suggested __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_contact_suggested = {
+               .name = 0xc21e6e5e,
+               .id = "Bare_ContactSuggested",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_dc_option __attribute__ ((unused));
+static struct tl_type_descr tl_type_dc_option = {
+               .name = 0x2ec2a43c,
+               .id = "DcOption"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_dc_option __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_dc_option = {
+               .name = 0xd13d5bc3,
+               .id = "Bare_DcOption",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_decrypted_message __attribute__ ((unused));
+static struct tl_type_descr tl_type_decrypted_message = {
+               .name = 0xe692047a,
+               .id = "DecryptedMessage"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_decrypted_message __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_decrypted_message = {
+               .name = 0x196dfb85,
+               .id = "Bare_DecryptedMessage",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_decrypted_message_action __attribute__ ((unused));
+static struct tl_type_descr tl_type_decrypted_message_action = {
+               .name = 0x4e0eefde,
+               .id = "DecryptedMessageAction"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_decrypted_message_action __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_decrypted_message_action = {
+               .name = 0xb1f11021,
+               .id = "Bare_DecryptedMessageAction",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_decrypted_message_layer __attribute__ ((unused));
+static struct tl_type_descr tl_type_decrypted_message_layer = {
+               .name = 0x1be31789,
+               .id = "DecryptedMessageLayer"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_decrypted_message_layer __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_decrypted_message_layer = {
+               .name = 0xe41ce876,
+               .id = "Bare_DecryptedMessageLayer",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_decrypted_message_media __attribute__ ((unused));
+static struct tl_type_descr tl_type_decrypted_message_media = {
+               .name = 0xe21b7dd5,
+               .id = "DecryptedMessageMedia"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_decrypted_message_media __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_decrypted_message_media = {
+               .name = 0x1de4822a,
+               .id = "Bare_DecryptedMessageMedia",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_dialog __attribute__ ((unused));
+static struct tl_type_descr tl_type_dialog = {
+               .name = 0xab3a99ac,
+               .id = "Dialog"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_dialog __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_dialog = {
+               .name = 0x54c56653,
+               .id = "Bare_Dialog",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_document __attribute__ ((unused));
+static struct tl_type_descr tl_type_document = {
+               .name = 0x51a73418,
+               .id = "Document"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_document __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_document = {
+               .name = 0xae58cbe7,
+               .id = "Bare_Document",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_document_attribute __attribute__ ((unused));
+static struct tl_type_descr tl_type_document_attribute = {
+               .name = 0xcfd59b04,
+               .id = "DocumentAttribute"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_document_attribute __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_document_attribute = {
+               .name = 0x302a64fb,
+               .id = "Bare_DocumentAttribute",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_double __attribute__ ((unused));
+static struct tl_type_descr tl_type_double = {
+               .name = 0x2210c154,
+               .id = "Double"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_double __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_double = {
+               .name = 0xddef3eab,
+               .id = "Bare_Double",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_encrypted_chat __attribute__ ((unused));
+static struct tl_type_descr tl_type_encrypted_chat = {
+               .name = 0xb1718213,
+               .id = "EncryptedChat"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_encrypted_chat __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_encrypted_chat = {
+               .name = 0x4e8e7dec,
+               .id = "Bare_EncryptedChat",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_encrypted_file __attribute__ ((unused));
+static struct tl_type_descr tl_type_encrypted_file = {
+               .name = 0x886fd032,
+               .id = "EncryptedFile"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_encrypted_file __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_encrypted_file = {
+               .name = 0x77902fcd,
+               .id = "Bare_EncryptedFile",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_encrypted_message __attribute__ ((unused));
+static struct tl_type_descr tl_type_encrypted_message = {
+               .name = 0xce6b8a1e,
+               .id = "EncryptedMessage"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_encrypted_message __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_encrypted_message = {
+               .name = 0x319475e1,
+               .id = "Bare_EncryptedMessage",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_error __attribute__ ((unused));
+static struct tl_type_descr tl_type_error = {
+               .name = 0xc4b9f9bb,
+               .id = "Error"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_error __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_error = {
+               .name = 0x3b460644,
+               .id = "Bare_Error",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_file_location __attribute__ ((unused));
+static struct tl_type_descr tl_type_file_location = {
+               .name = 0x2f8ffb30,
+               .id = "FileLocation"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_file_location __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_file_location = {
+               .name = 0xd07004cf,
+               .id = "Bare_FileLocation",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_geo_chat_message __attribute__ ((unused));
+static struct tl_type_descr tl_type_geo_chat_message = {
+               .name = 0xf67b4034,
+               .id = "GeoChatMessage"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_geo_chat_message __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_geo_chat_message = {
+               .name = 0x0984bfcb,
+               .id = "Bare_GeoChatMessage",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_geo_point __attribute__ ((unused));
+static struct tl_type_descr tl_type_geo_point = {
+               .name = 0x315e0a53,
+               .id = "GeoPoint"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_geo_point __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_geo_point = {
+               .name = 0xcea1f5ac,
+               .id = "Bare_GeoPoint",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_imported_contact __attribute__ ((unused));
+static struct tl_type_descr tl_type_imported_contact = {
+               .name = 0xd0028438,
+               .id = "ImportedContact"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_imported_contact __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_imported_contact = {
+               .name = 0x2ffd7bc7,
+               .id = "Bare_ImportedContact",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_input_app_event __attribute__ ((unused));
+static struct tl_type_descr tl_type_input_app_event = {
+               .name = 0x770656a8,
+               .id = "InputAppEvent"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_input_app_event __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_input_app_event = {
+               .name = 0x88f9a957,
+               .id = "Bare_InputAppEvent",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_input_audio __attribute__ ((unused));
+static struct tl_type_descr tl_type_input_audio = {
+               .name = 0xae8e9c7b,
+               .id = "InputAudio"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_input_audio __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_input_audio = {
+               .name = 0x51716384,
+               .id = "Bare_InputAudio",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_input_chat_photo __attribute__ ((unused));
+static struct tl_type_descr tl_type_input_chat_photo = {
+               .name = 0x3a60776d,
+               .id = "InputChatPhoto"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_input_chat_photo __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_input_chat_photo = {
+               .name = 0xc59f8892,
+               .id = "Bare_InputChatPhoto",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_input_contact __attribute__ ((unused));
+static struct tl_type_descr tl_type_input_contact = {
+               .name = 0xf392b7f4,
+               .id = "InputContact"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_input_contact __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_input_contact = {
+               .name = 0x0c6d480b,
+               .id = "Bare_InputContact",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_input_document __attribute__ ((unused));
+static struct tl_type_descr tl_type_input_document = {
+               .name = 0x6a8963fc,
+               .id = "InputDocument"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_input_document __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_input_document = {
+               .name = 0x95769c03,
+               .id = "Bare_InputDocument",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_input_encrypted_chat __attribute__ ((unused));
+static struct tl_type_descr tl_type_input_encrypted_chat = {
+               .name = 0xf141b5e1,
+               .id = "InputEncryptedChat"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_input_encrypted_chat __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_input_encrypted_chat = {
+               .name = 0x0ebe4a1e,
+               .id = "Bare_InputEncryptedChat",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_input_encrypted_file __attribute__ ((unused));
+static struct tl_type_descr tl_type_input_encrypted_file = {
+               .name = 0x0b5c064f,
+               .id = "InputEncryptedFile"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_input_encrypted_file __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_input_encrypted_file = {
+               .name = 0xf4a3f9b0,
+               .id = "Bare_InputEncryptedFile",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_input_file __attribute__ ((unused));
+static struct tl_type_descr tl_type_input_file = {
+               .name = 0x0f60f9ca,
+               .id = "InputFile"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_input_file __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_input_file = {
+               .name = 0xf09f0635,
+               .id = "Bare_InputFile",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_input_file_location __attribute__ ((unused));
+static struct tl_type_descr tl_type_input_file_location = {
+               .name = 0xe6daa38b,
+               .id = "InputFileLocation"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_input_file_location __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_input_file_location = {
+               .name = 0x19255c74,
+               .id = "Bare_InputFileLocation",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_input_geo_chat __attribute__ ((unused));
+static struct tl_type_descr tl_type_input_geo_chat = {
+               .name = 0x74d456fa,
+               .id = "InputGeoChat"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_input_geo_chat __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_input_geo_chat = {
+               .name = 0x8b2ba905,
+               .id = "Bare_InputGeoChat",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_input_geo_point __attribute__ ((unused));
+static struct tl_type_descr tl_type_input_geo_point = {
+               .name = 0x17768f1f,
+               .id = "InputGeoPoint"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_input_geo_point __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_input_geo_point = {
+               .name = 0xe88970e0,
+               .id = "Bare_InputGeoPoint",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_input_media __attribute__ ((unused));
+static struct tl_type_descr tl_type_input_media = {
+               .name = 0x3670cf17,
+               .id = "InputMedia"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_input_media __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_input_media = {
+               .name = 0xc98f30e8,
+               .id = "Bare_InputMedia",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_input_notify_peer __attribute__ ((unused));
+static struct tl_type_descr tl_type_input_notify_peer = {
+               .name = 0x02b6911b,
+               .id = "InputNotifyPeer"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_input_notify_peer __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_input_notify_peer = {
+               .name = 0xfd496ee4,
+               .id = "Bare_InputNotifyPeer",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_input_peer __attribute__ ((unused));
+static struct tl_type_descr tl_type_input_peer = {
+               .name = 0x9e67268d,
+               .id = "InputPeer"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_input_peer __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_input_peer = {
+               .name = 0x6198d972,
+               .id = "Bare_InputPeer",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_input_peer_notify_events __attribute__ ((unused));
+static struct tl_type_descr tl_type_input_peer_notify_events = {
+               .name = 0x185a48ac,
+               .id = "InputPeerNotifyEvents"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_input_peer_notify_events __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_input_peer_notify_events = {
+               .name = 0xe7a5b753,
+               .id = "Bare_InputPeerNotifyEvents",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_input_peer_notify_settings __attribute__ ((unused));
+static struct tl_type_descr tl_type_input_peer_notify_settings = {
+               .name = 0x46a2ce98,
+               .id = "InputPeerNotifySettings"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_input_peer_notify_settings __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_input_peer_notify_settings = {
+               .name = 0xb95d3167,
+               .id = "Bare_InputPeerNotifySettings",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_input_photo __attribute__ ((unused));
+static struct tl_type_descr tl_type_input_photo = {
+               .name = 0xe74279c9,
+               .id = "InputPhoto"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_input_photo __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_input_photo = {
+               .name = 0x18bd8636,
+               .id = "Bare_InputPhoto",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_input_photo_crop __attribute__ ((unused));
+static struct tl_type_descr tl_type_input_photo_crop = {
+               .name = 0x7477e321,
+               .id = "InputPhotoCrop"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_input_photo_crop __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_input_photo_crop = {
+               .name = 0x8b881cde,
+               .id = "Bare_InputPhotoCrop",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_input_privacy_key __attribute__ ((unused));
+static struct tl_type_descr tl_type_input_privacy_key = {
+               .name = 0x4f96cb18,
+               .id = "InputPrivacyKey"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_input_privacy_key __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_input_privacy_key = {
+               .name = 0xb06934e7,
+               .id = "Bare_InputPrivacyKey",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_input_privacy_rule __attribute__ ((unused));
+static struct tl_type_descr tl_type_input_privacy_rule = {
+               .name = 0x4b815163,
+               .id = "InputPrivacyRule"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_input_privacy_rule __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_input_privacy_rule = {
+               .name = 0xb47eae9c,
+               .id = "Bare_InputPrivacyRule",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_input_user __attribute__ ((unused));
+static struct tl_type_descr tl_type_input_user = {
+               .name = 0xadfe0c6a,
+               .id = "InputUser"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_input_user __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_input_user = {
+               .name = 0x5201f395,
+               .id = "Bare_InputUser",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_input_video __attribute__ ((unused));
+static struct tl_type_descr tl_type_input_video = {
+               .name = 0xbb5f7a27,
+               .id = "InputVideo"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_input_video __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_input_video = {
+               .name = 0x44a085d8,
+               .id = "Bare_InputVideo",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_int __attribute__ ((unused));
+static struct tl_type_descr tl_type_int = {
+               .name = 0xa8509bda,
+               .id = "Int"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_int __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_int = {
+               .name = 0x57af6425,
+               .id = "Bare_Int",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_int128 __attribute__ ((unused));
+static struct tl_type_descr tl_type_int128 = {
+               .name = 0x7d36c439,
+               .id = "Int128"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_int128 __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_int128 = {
+               .name = 0x82c93bc6,
+               .id = "Bare_Int128",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_int256 __attribute__ ((unused));
+static struct tl_type_descr tl_type_int256 = {
+               .name = 0xf2c798b3,
+               .id = "Int256"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_int256 __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_int256 = {
+               .name = 0x0d38674c,
+               .id = "Bare_Int256",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_long __attribute__ ((unused));
+static struct tl_type_descr tl_type_long = {
+               .name = 0x22076cba,
+               .id = "Long"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_long __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_long = {
+               .name = 0xddf89345,
+               .id = "Bare_Long",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_message __attribute__ ((unused));
+static struct tl_type_descr tl_type_message = {
+               .name = 0x6b7257ff,
+               .id = "Message"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_message __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_message = {
+               .name = 0x948da800,
+               .id = "Bare_Message",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_message_action __attribute__ ((unused));
+static struct tl_type_descr tl_type_message_action = {
+               .name = 0xc0a8e012,
+               .id = "MessageAction"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_message_action __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_message_action = {
+               .name = 0x3f571fed,
+               .id = "Bare_MessageAction",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_message_media __attribute__ ((unused));
+static struct tl_type_descr tl_type_message_media = {
+               .name = 0x9f690be5,
+               .id = "MessageMedia"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_message_media __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_message_media = {
+               .name = 0x6096f41a,
+               .id = "Bare_MessageMedia",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_messages_filter __attribute__ ((unused));
+static struct tl_type_descr tl_type_messages_filter = {
+               .name = 0x59d7295b,
+               .id = "MessagesFilter"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_messages_filter __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_messages_filter = {
+               .name = 0xa628d6a4,
+               .id = "Bare_MessagesFilter",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_nearest_dc __attribute__ ((unused));
+static struct tl_type_descr tl_type_nearest_dc = {
+               .name = 0x8e1a1775,
+               .id = "NearestDc"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_nearest_dc __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_nearest_dc = {
+               .name = 0x71e5e88a,
+               .id = "Bare_NearestDc",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_notify_peer __attribute__ ((unused));
+static struct tl_type_descr tl_type_notify_peer = {
+               .name = 0x9fcb8237,
+               .id = "NotifyPeer"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_notify_peer __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_notify_peer = {
+               .name = 0x60347dc8,
+               .id = "Bare_NotifyPeer",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_null __attribute__ ((unused));
+static struct tl_type_descr tl_type_null = {
+               .name = 0x56730bcc,
+               .id = "Null"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_null __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_null = {
+               .name = 0xa98cf433,
+               .id = "Bare_Null",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_p_q_inner_data __attribute__ ((unused));
+static struct tl_type_descr tl_type_p_q_inner_data = {
+               .name = 0xbfa3de38,
+               .id = "P_Q_inner_data"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_p_q_inner_data __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_p_q_inner_data = {
+               .name = 0x405c21c7,
+               .id = "Bare_P_Q_inner_data",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_peer __attribute__ ((unused));
+static struct tl_type_descr tl_type_peer = {
+               .name = 0x276159d6,
+               .id = "Peer"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_peer __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_peer = {
+               .name = 0xd89ea629,
+               .id = "Bare_Peer",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_peer_notify_events __attribute__ ((unused));
+static struct tl_type_descr tl_type_peer_notify_events = {
+               .name = 0xc0c8d13b,
+               .id = "PeerNotifyEvents"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_peer_notify_events __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_peer_notify_events = {
+               .name = 0x3f372ec4,
+               .id = "Bare_PeerNotifyEvents",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_peer_notify_settings __attribute__ ((unused));
+static struct tl_type_descr tl_type_peer_notify_settings = {
+               .name = 0xfdf894fc,
+               .id = "PeerNotifySettings"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_peer_notify_settings __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_peer_notify_settings = {
+               .name = 0x02076b03,
+               .id = "Bare_PeerNotifySettings",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_photo __attribute__ ((unused));
+static struct tl_type_descr tl_type_photo = {
+               .name = 0x0184d57c,
+               .id = "Photo"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_photo __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_photo = {
+               .name = 0xfe7b2a83,
+               .id = "Bare_Photo",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_photo_size __attribute__ ((unused));
+static struct tl_type_descr tl_type_photo_size = {
+               .name = 0x900f60dd,
+               .id = "PhotoSize"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_photo_size __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_photo_size = {
+               .name = 0x6ff09f22,
+               .id = "Bare_PhotoSize",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_privacy_key __attribute__ ((unused));
+static struct tl_type_descr tl_type_privacy_key = {
+               .name = 0xbc2eab30,
+               .id = "PrivacyKey"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_privacy_key __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_privacy_key = {
+               .name = 0x43d154cf,
+               .id = "Bare_PrivacyKey",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_privacy_rule __attribute__ ((unused));
+static struct tl_type_descr tl_type_privacy_rule = {
+               .name = 0xa8638aec,
+               .id = "PrivacyRule"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_privacy_rule __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_privacy_rule = {
+               .name = 0x579c7513,
+               .id = "Bare_PrivacyRule",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_res_p_q __attribute__ ((unused));
+static struct tl_type_descr tl_type_res_p_q = {
+               .name = 0x05162463,
+               .id = "ResPQ"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_res_p_q __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_res_p_q = {
+               .name = 0xfae9db9c,
+               .id = "Bare_ResPQ",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_send_message_action __attribute__ ((unused));
+static struct tl_type_descr tl_type_send_message_action = {
+               .name = 0x88a65ee1,
+               .id = "SendMessageAction"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_send_message_action __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_send_message_action = {
+               .name = 0x7759a11e,
+               .id = "Bare_SendMessageAction",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_server_d_h_params __attribute__ ((unused));
+static struct tl_type_descr tl_type_server_d_h_params = {
+               .name = 0xa9230301,
+               .id = "Server_DH_Params"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_server_d_h_params __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_server_d_h_params = {
+               .name = 0x56dcfcfe,
+               .id = "Bare_Server_DH_Params",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_server_d_h_inner_data __attribute__ ((unused));
+static struct tl_type_descr tl_type_server_d_h_inner_data = {
+               .name = 0xb5890dba,
+               .id = "Server_DH_inner_data"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_server_d_h_inner_data __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_server_d_h_inner_data = {
+               .name = 0x4a76f245,
+               .id = "Bare_Server_DH_inner_data",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_set_client_d_h_params_answer __attribute__ ((unused));
+static struct tl_type_descr tl_type_set_client_d_h_params_answer = {
+               .name = 0xdb8a468f,
+               .id = "Set_client_DH_params_answer"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_set_client_d_h_params_answer __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_set_client_d_h_params_answer = {
+               .name = 0x2475b970,
+               .id = "Bare_Set_client_DH_params_answer",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_sticker_pack __attribute__ ((unused));
+static struct tl_type_descr tl_type_sticker_pack = {
+               .name = 0x12b299d4,
+               .id = "StickerPack"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_sticker_pack __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_sticker_pack = {
+               .name = 0xed4d662b,
+               .id = "Bare_StickerPack",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_string __attribute__ ((unused));
+static struct tl_type_descr tl_type_string = {
+               .name = 0xb5286e24,
+               .id = "String"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_string __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_string = {
+               .name = 0x4ad791db,
+               .id = "Bare_String",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_update __attribute__ ((unused));
+static struct tl_type_descr tl_type_update = {
+               .name = 0x7eb21a2b,
+               .id = "Update"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_update __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_update = {
+               .name = 0x814de5d4,
+               .id = "Bare_Update",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_updates __attribute__ ((unused));
+static struct tl_type_descr tl_type_updates = {
+               .name = 0x65edddf6,
+               .id = "Updates"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_updates __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_updates = {
+               .name = 0x9a122209,
+               .id = "Bare_Updates",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_user __attribute__ ((unused));
+static struct tl_type_descr tl_type_user = {
+               .name = 0x9227e4ce,
+               .id = "User"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_user __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_user = {
+               .name = 0x6dd81b31,
+               .id = "Bare_User",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_user_full __attribute__ ((unused));
+static struct tl_type_descr tl_type_user_full = {
+               .name = 0x771095da,
+               .id = "UserFull"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_user_full __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_user_full = {
+               .name = 0x88ef6a25,
+               .id = "Bare_UserFull",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_user_profile_photo __attribute__ ((unused));
+static struct tl_type_descr tl_type_user_profile_photo = {
+               .name = 0x9a486229,
+               .id = "UserProfilePhoto"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_user_profile_photo __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_user_profile_photo = {
+               .name = 0x65b79dd6,
+               .id = "Bare_UserProfilePhoto",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_user_status __attribute__ ((unused));
+static struct tl_type_descr tl_type_user_status = {
+               .name = 0x76de9570,
+               .id = "UserStatus"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_user_status __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_user_status = {
+               .name = 0x89216a8f,
+               .id = "Bare_UserStatus",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_vector __attribute__ ((unused));
+static struct tl_type_descr tl_type_vector = {
+               .name = 0x1cb5c415,
+               .id = "Vector"
+                               ,  .params_num = 1,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_vector __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_vector = {
+               .name = 0xe34a3bea,
+               .id = "Bare_Vector",
+               .params_num = 1,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_video __attribute__ ((unused));
+static struct tl_type_descr tl_type_video = {
+               .name = 0xf989fb39,
+               .id = "Video"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_video __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_video = {
+               .name = 0x067604c6,
+               .id = "Bare_Video",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_wall_paper __attribute__ ((unused));
+static struct tl_type_descr tl_type_wall_paper = {
+               .name = 0xafa14973,
+               .id = "WallPaper"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_wall_paper __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_wall_paper = {
+               .name = 0x505eb68c,
+               .id = "Bare_WallPaper",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_account_password __attribute__ ((unused));
+static struct tl_type_descr tl_type_account_password = {
+               .name = 0x24eeb8db,
+               .id = "account.Password"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_account_password __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_account_password = {
+               .name = 0xdb114724,
+               .id = "Bare_account.Password",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_account_privacy_rules __attribute__ ((unused));
+static struct tl_type_descr tl_type_account_privacy_rules = {
+               .name = 0x554abb6f,
+               .id = "account.PrivacyRules"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_account_privacy_rules __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_account_privacy_rules = {
+               .name = 0xaab54490,
+               .id = "Bare_account.PrivacyRules",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_account_sent_change_phone_code __attribute__ ((unused));
+static struct tl_type_descr tl_type_account_sent_change_phone_code = {
+               .name = 0xa4f58c4c,
+               .id = "account.SentChangePhoneCode"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_account_sent_change_phone_code __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_account_sent_change_phone_code = {
+               .name = 0x5b0a73b3,
+               .id = "Bare_account.SentChangePhoneCode",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_auth_authorization __attribute__ ((unused));
+static struct tl_type_descr tl_type_auth_authorization = {
+               .name = 0xf6b673a4,
+               .id = "auth.Authorization"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_auth_authorization __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_auth_authorization = {
+               .name = 0x09498c5b,
+               .id = "Bare_auth.Authorization",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_auth_checked_phone __attribute__ ((unused));
+static struct tl_type_descr tl_type_auth_checked_phone = {
+               .name = 0xe300cc3b,
+               .id = "auth.CheckedPhone"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_auth_checked_phone __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_auth_checked_phone = {
+               .name = 0x1cff33c4,
+               .id = "Bare_auth.CheckedPhone",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_auth_exported_authorization __attribute__ ((unused));
+static struct tl_type_descr tl_type_auth_exported_authorization = {
+               .name = 0xdf969c2d,
+               .id = "auth.ExportedAuthorization"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_auth_exported_authorization __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_auth_exported_authorization = {
+               .name = 0x206963d2,
+               .id = "Bare_auth.ExportedAuthorization",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_auth_sent_code __attribute__ ((unused));
+static struct tl_type_descr tl_type_auth_sent_code = {
+               .name = 0x0cc8bc16,
+               .id = "auth.SentCode"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_auth_sent_code __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_auth_sent_code = {
+               .name = 0xf33743e9,
+               .id = "Bare_auth.SentCode",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_binlog_chat_participant __attribute__ ((unused));
+static struct tl_type_descr tl_type_binlog_chat_participant = {
+               .name = 0xe97ad32a,
+               .id = "binlog.ChatParticipant"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_binlog_chat_participant __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_binlog_chat_participant = {
+               .name = 0x16852cd5,
+               .id = "Bare_binlog.ChatParticipant",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_binlog_file_location __attribute__ ((unused));
+static struct tl_type_descr tl_type_binlog_file_location = {
+               .name = 0xae7ae5ce,
+               .id = "binlog.FileLocation"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_binlog_file_location __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_binlog_file_location = {
+               .name = 0x51851a31,
+               .id = "Bare_binlog.FileLocation",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_binlog_update __attribute__ ((unused));
+static struct tl_type_descr tl_type_binlog_update = {
+               .name = 0xf034fbee,
+               .id = "binlog.Update"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_binlog_update __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_binlog_update = {
+               .name = 0x0fcb0411,
+               .id = "Bare_binlog.Update",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_contacts_blocked __attribute__ ((unused));
+static struct tl_type_descr tl_type_contacts_blocked = {
+               .name = 0x8c1b8fb4,
+               .id = "contacts.Blocked"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_contacts_blocked __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_contacts_blocked = {
+               .name = 0x73e4704b,
+               .id = "Bare_contacts.Blocked",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_contacts_contacts __attribute__ ((unused));
+static struct tl_type_descr tl_type_contacts_contacts = {
+               .name = 0xd8c02560,
+               .id = "contacts.Contacts"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_contacts_contacts __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_contacts_contacts = {
+               .name = 0x273fda9f,
+               .id = "Bare_contacts.Contacts",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_contacts_foreign_link __attribute__ ((unused));
+static struct tl_type_descr tl_type_contacts_foreign_link = {
+               .name = 0xaf5eb25e,
+               .id = "contacts.ForeignLink"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_contacts_foreign_link __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_contacts_foreign_link = {
+               .name = 0x50a14da1,
+               .id = "Bare_contacts.ForeignLink",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_contacts_found __attribute__ ((unused));
+static struct tl_type_descr tl_type_contacts_found = {
+               .name = 0x0566000e,
+               .id = "contacts.Found"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_contacts_found __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_contacts_found = {
+               .name = 0xfa99fff1,
+               .id = "Bare_contacts.Found",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_contacts_imported_contacts __attribute__ ((unused));
+static struct tl_type_descr tl_type_contacts_imported_contacts = {
+               .name = 0xad524315,
+               .id = "contacts.ImportedContacts"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_contacts_imported_contacts __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_contacts_imported_contacts = {
+               .name = 0x52adbcea,
+               .id = "Bare_contacts.ImportedContacts",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_contacts_link __attribute__ ((unused));
+static struct tl_type_descr tl_type_contacts_link = {
+               .name = 0xeccea3f5,
+               .id = "contacts.Link"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_contacts_link __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_contacts_link = {
+               .name = 0x13315c0a,
+               .id = "Bare_contacts.Link",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_contacts_my_link __attribute__ ((unused));
+static struct tl_type_descr tl_type_contacts_my_link = {
+               .name = 0x7c031857,
+               .id = "contacts.MyLink"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_contacts_my_link __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_contacts_my_link = {
+               .name = 0x83fce7a8,
+               .id = "Bare_contacts.MyLink",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_contacts_suggested __attribute__ ((unused));
+static struct tl_type_descr tl_type_contacts_suggested = {
+               .name = 0x5649dcc5,
+               .id = "contacts.Suggested"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_contacts_suggested __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_contacts_suggested = {
+               .name = 0xa9b6233a,
+               .id = "Bare_contacts.Suggested",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_geochats_located __attribute__ ((unused));
+static struct tl_type_descr tl_type_geochats_located = {
+               .name = 0x48feb267,
+               .id = "geochats.Located"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_geochats_located __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_geochats_located = {
+               .name = 0xb7014d98,
+               .id = "Bare_geochats.Located",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_geochats_messages __attribute__ ((unused));
+static struct tl_type_descr tl_type_geochats_messages = {
+               .name = 0x6d0a0e59,
+               .id = "geochats.Messages"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_geochats_messages __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_geochats_messages = {
+               .name = 0x92f5f1a6,
+               .id = "Bare_geochats.Messages",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_geochats_stated_message __attribute__ ((unused));
+static struct tl_type_descr tl_type_geochats_stated_message = {
+               .name = 0x17b1578b,
+               .id = "geochats.StatedMessage"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_geochats_stated_message __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_geochats_stated_message = {
+               .name = 0xe84ea874,
+               .id = "Bare_geochats.StatedMessage",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_help_app_update __attribute__ ((unused));
+static struct tl_type_descr tl_type_help_app_update = {
+               .name = 0x4ddd9627,
+               .id = "help.AppUpdate"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_help_app_update __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_help_app_update = {
+               .name = 0xb22269d8,
+               .id = "Bare_help.AppUpdate",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_help_invite_text __attribute__ ((unused));
+static struct tl_type_descr tl_type_help_invite_text = {
+               .name = 0x18cb9f78,
+               .id = "help.InviteText"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_help_invite_text __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_help_invite_text = {
+               .name = 0xe7346087,
+               .id = "Bare_help.InviteText",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_help_support __attribute__ ((unused));
+static struct tl_type_descr tl_type_help_support = {
+               .name = 0x17c6b5f6,
+               .id = "help.Support"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_help_support __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_help_support = {
+               .name = 0xe8394a09,
+               .id = "Bare_help.Support",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_messages_affected_history __attribute__ ((unused));
+static struct tl_type_descr tl_type_messages_affected_history = {
+               .name = 0xb7de36f2,
+               .id = "messages.AffectedHistory"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_messages_affected_history __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_messages_affected_history = {
+               .name = 0x4821c90d,
+               .id = "Bare_messages.AffectedHistory",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_messages_all_stickers __attribute__ ((unused));
+static struct tl_type_descr tl_type_messages_all_stickers = {
+               .name = 0x348933c1,
+               .id = "messages.AllStickers"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_messages_all_stickers __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_messages_all_stickers = {
+               .name = 0xcb76cc3e,
+               .id = "Bare_messages.AllStickers",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_messages_chat __attribute__ ((unused));
+static struct tl_type_descr tl_type_messages_chat = {
+               .name = 0x40e9002a,
+               .id = "messages.Chat"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_messages_chat __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_messages_chat = {
+               .name = 0xbf16ffd5,
+               .id = "Bare_messages.Chat",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_messages_chat_full __attribute__ ((unused));
+static struct tl_type_descr tl_type_messages_chat_full = {
+               .name = 0xe5d7d19c,
+               .id = "messages.ChatFull"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_messages_chat_full __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_messages_chat_full = {
+               .name = 0x1a282e63,
+               .id = "Bare_messages.ChatFull",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_messages_chats __attribute__ ((unused));
+static struct tl_type_descr tl_type_messages_chats = {
+               .name = 0x8150cbd8,
+               .id = "messages.Chats"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_messages_chats __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_messages_chats = {
+               .name = 0x7eaf3427,
+               .id = "Bare_messages.Chats",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_messages_dh_config __attribute__ ((unused));
+static struct tl_type_descr tl_type_messages_dh_config = {
+               .name = 0xecc058e8,
+               .id = "messages.DhConfig"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_messages_dh_config __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_messages_dh_config = {
+               .name = 0x133fa717,
+               .id = "Bare_messages.DhConfig",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_messages_dialogs __attribute__ ((unused));
+static struct tl_type_descr tl_type_messages_dialogs = {
+               .name = 0x645af8b3,
+               .id = "messages.Dialogs"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_messages_dialogs __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_messages_dialogs = {
+               .name = 0x9ba5074c,
+               .id = "Bare_messages.Dialogs",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_messages_message __attribute__ ((unused));
+static struct tl_type_descr tl_type_messages_message = {
+               .name = 0xc0dec25f,
+               .id = "messages.Message"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_messages_message __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_messages_message = {
+               .name = 0x3f213da0,
+               .id = "Bare_messages.Message",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_messages_messages __attribute__ ((unused));
+static struct tl_type_descr tl_type_messages_messages = {
+               .name = 0x8735e464,
+               .id = "messages.Messages"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_messages_messages __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_messages_messages = {
+               .name = 0x78ca1b9b,
+               .id = "Bare_messages.Messages",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_messages_sent_encrypted_message __attribute__ ((unused));
+static struct tl_type_descr tl_type_messages_sent_encrypted_message = {
+               .name = 0xc29c7607,
+               .id = "messages.SentEncryptedMessage"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_messages_sent_encrypted_message __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_messages_sent_encrypted_message = {
+               .name = 0x3d6389f8,
+               .id = "Bare_messages.SentEncryptedMessage",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_messages_sent_message __attribute__ ((unused));
+static struct tl_type_descr tl_type_messages_sent_message = {
+               .name = 0x382f9963,
+               .id = "messages.SentMessage"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_messages_sent_message __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_messages_sent_message = {
+               .name = 0xc7d0669c,
+               .id = "Bare_messages.SentMessage",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_messages_stated_message __attribute__ ((unused));
+static struct tl_type_descr tl_type_messages_stated_message = {
+               .name = 0x79d5cfa7,
+               .id = "messages.StatedMessage"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_messages_stated_message __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_messages_stated_message = {
+               .name = 0x862a3058,
+               .id = "Bare_messages.StatedMessage",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_messages_stated_messages __attribute__ ((unused));
+static struct tl_type_descr tl_type_messages_stated_messages = {
+               .name = 0xa8e08d7d,
+               .id = "messages.StatedMessages"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_messages_stated_messages __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_messages_stated_messages = {
+               .name = 0x571f7282,
+               .id = "Bare_messages.StatedMessages",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_messages_stickers __attribute__ ((unused));
+static struct tl_type_descr tl_type_messages_stickers = {
+               .name = 0x7bfa5710,
+               .id = "messages.Stickers"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_messages_stickers __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_messages_stickers = {
+               .name = 0x8405a8ef,
+               .id = "Bare_messages.Stickers",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_photos_photo __attribute__ ((unused));
+static struct tl_type_descr tl_type_photos_photo = {
+               .name = 0x20212ca8,
+               .id = "photos.Photo"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_photos_photo __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_photos_photo = {
+               .name = 0xdfded357,
+               .id = "Bare_photos.Photo",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_photos_photos __attribute__ ((unused));
+static struct tl_type_descr tl_type_photos_photos = {
+               .name = 0x98cf75f1,
+               .id = "photos.Photos"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_photos_photos __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_photos_photos = {
+               .name = 0x67308a0e,
+               .id = "Bare_photos.Photos",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_storage_file_type __attribute__ ((unused));
+static struct tl_type_descr tl_type_storage_file_type = {
+               .name = 0x3e2838a8,
+               .id = "storage.FileType"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_storage_file_type __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_storage_file_type = {
+               .name = 0xc1d7c757,
+               .id = "Bare_storage.FileType",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_updates_difference __attribute__ ((unused));
+static struct tl_type_descr tl_type_updates_difference = {
+               .name = 0xf57a2419,
+               .id = "updates.Difference"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_updates_difference __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_updates_difference = {
+               .name = 0x0a85dbe6,
+               .id = "Bare_updates.Difference",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_updates_state __attribute__ ((unused));
+static struct tl_type_descr tl_type_updates_state = {
+               .name = 0xa56c2a3e,
+               .id = "updates.State"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_updates_state __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_updates_state = {
+               .name = 0x5a93d5c1,
+               .id = "Bare_updates.State",
+               .params_num = 0,
+               .params_types = 0
+};
+static struct tl_type_descr tl_type_upload_file __attribute__ ((unused));
+static struct tl_type_descr tl_type_upload_file = {
+               .name = 0x096a18d5,
+               .id = "upload.File"
+                               ,  .params_num = 0,
+                               .params_types = 0
+};
+static struct tl_type_descr tl_type_bare_upload_file __attribute__ ((unused));
+static struct tl_type_descr tl_type_bare_upload_file = {
+               .name = 0xf695e72a,
+               .id = "Bare_upload.File",
+               .params_num = 0,
+               .params_types = 0
+};
+
+#endif
diff --git a/tg-engine-service/mtprotocol/auto/auto.c b/tg-engine-service/mtprotocol/auto/auto.c
new file mode 100644 (file)
index 0000000..a9351b2
--- /dev/null
@@ -0,0 +1,82651 @@
+#include "../auto.h"
+#include <assert.h>
+#include "mtproto-common.h"
+#include <string.h>
+#include "auto-static.h"
+
+/****************************************************************************************************************/
+int cur_token_len;
+char *cur_token;
+int cur_token_real_len;
+int cur_token_quoted;
+int multiline_output = 1;
+int multiline_offset;
+int multiline_offset_size = 2;
+int disable_field_names;
+char *buffer_pos, *buffer_end;
+
+#define MAX_FVARS 100
+struct paramed_type *fvars[MAX_FVARS];
+int fvars_pos;
+
+int autocomplete_mode;
+char *autocomplete_string;
+int (*autocomplete_fun)(const char *, int, int, char **);
+
+#define expect_token(token,len) \
+               if (len != cur_token_len || memcmp (cur_token, token, cur_token_len)) { return -1; } \
+               local_next_token ();
+
+#define expect_token_ptr(token,len) \
+               if (len != cur_token_len || memcmp (cur_token, token, cur_token_len)) { return 0; } \
+               local_next_token ();
+
+#define expect_token_autocomplete(token,len) \
+               if (cur_token_len == -3 && len >= cur_token_real_len && !memcmp (cur_token, token, cur_token_real_len)) { set_autocomplete_string (token); return -1; }\
+               if (len != cur_token_len || memcmp (cur_token, token, cur_token_len)) { return -1; } \
+               local_next_token ();
+
+#define expect_token_ptr_autocomplete(token,len) \
+               if (cur_token_len == -3 && len >= cur_token_real_len && !memcmp (cur_token, token, cur_token_real_len)) { set_autocomplete_string (token); return 0; }\
+               if (len != cur_token_len || memcmp (cur_token, token, cur_token_len)) { return 0; } \
+               local_next_token ();
+
+//#define OUT_BUF_SIZE (1 << 25)
+#define OUT_BUF_SIZE (1)
+char out_buf[OUT_BUF_SIZE];
+int out_buf_pos;
+
+char exp_buffer[OUT_BUF_SIZE];
+int exp_buffer_pos;
+
+#define eprintf(...) \
+               do { \
+                       out_buf_pos += snprintf (out_buf + out_buf_pos, OUT_BUF_SIZE - out_buf_pos, __VA_ARGS__);\
+                       assert (out_buf_pos < OUT_BUF_SIZE);\
+               } while (0)\
+
+
+
+void set_autocomplete_type(int (*f)(const char *, int, int, char **))
+{
+       autocomplete_fun = f;
+       autocomplete_mode = 2;
+}
+
+int is_letter(char c)
+{
+       return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '.' || c == '_' || c == '-';
+}
+
+int is_hex(char c)
+{
+       return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f');
+}
+
+int hex2dec(char c)
+{
+       if (c >= '0' && c <= '9') { return c - '0'; }
+       else { return c - 'a' + 10; }
+}
+
+void print_offset(void)
+{
+       int i;
+       for (i = 0; i < multiline_offset; i++) {
+               eprintf (" ");
+       }
+}
+
+struct paramed_type *paramed_type_dup(struct paramed_type *P)
+{
+       if (ODDP (P)) {
+               return P;
+       }
+       struct paramed_type *R = malloc (sizeof (*R));
+       assert (R);
+       R->type = malloc (sizeof (*R->type));
+       assert (R->type);
+       memcpy (R->type, P->type, sizeof (*P->type));
+       R->type->id = strdup (P->type->id);
+       assert (R->type->id);
+
+       if (P->type->params_num) {
+               R->params = malloc (sizeof (void *) * P->type->params_num);
+               assert (R->params);
+               int i;
+               for (i = 0; i < P->type->params_num; i++) {
+                       R->params[i] = paramed_type_dup (P->params[i]);
+               }
+       }
+       return R;
+}
+
+
+void set_autocomplete_string(const char *s)
+{
+       if (autocomplete_string)
+               free (autocomplete_string);
+       autocomplete_string = strdup (s);
+       assert (autocomplete_string);
+       autocomplete_mode = 1;
+}
+
+int is_int(void)
+{
+       if (cur_token_len <= 0)
+               return 0;
+
+       char c = cur_token[cur_token_len];
+       cur_token[cur_token_len] = 0;
+       char *p = 0;
+
+       if (strtoll (cur_token, &p, 10)) {
+
+       }
+       cur_token[cur_token_len] = c;
+       return p == cur_token + cur_token_len;
+}
+
+long long get_int(void)
+{
+       if (cur_token_len <= 0) {
+               return 0;
+       }
+       char c = cur_token[cur_token_len];
+       cur_token[cur_token_len] = 0;
+       char *p = 0;
+
+       long long val = strtoll(cur_token, &p, 0);
+       cur_token[cur_token_len] = c;
+       return val;
+}
+
+int is_double(void)
+{
+       if (cur_token_len <= 0)
+               return 0;
+       char c = cur_token[cur_token_len];
+       cur_token[cur_token_len] = 0;
+       char *p = 0;
+
+       if (strtod(cur_token, &p))      {
+
+       }
+       cur_token[cur_token_len] = c;
+
+       return p == cur_token + cur_token_len;
+}
+double get_double(void)
+{
+       if (cur_token_len <= 0)
+               return 0;
+       char c = cur_token[cur_token_len];
+       cur_token[cur_token_len] = 0;
+       char *p = 0;
+
+       double val = strtod(cur_token, &p);
+       cur_token[cur_token_len] = c;
+
+       return val;
+}
+
+int valid_utf8_char(const char *str)
+{
+       unsigned char c = (unsigned char) *str;
+       int n = 0;
+
+       if ((c & 0x80) == 0x00) {
+               n = 0;
+       } else if ((c & 0xe0) == 0xc0) {
+               n = 1;
+       } else if ((c & 0xf0) == 0xe0) {
+               n = 2;
+       } else if ((c & 0xf8) == 0xf0) {
+               n = 3;
+       } else if ((c & 0xfc) == 0xf8) {
+               n = 4;
+       } else if ((c & 0xfe) == 0xfc) {
+               n = 5;
+       } else {
+               return -1;
+       }
+
+       int i;
+       for (i = 0; i < n; i ++) {
+               if ((((unsigned char)(str[i + 1])) & 0xc0) != 0x80) {
+                       return -1;
+               }
+       }
+       return n + 1;
+}
+
+
+void print_escaped_string(const char *str, int len)
+{
+       eprintf ("\"");
+       const char *end = str + len;
+       while (str < end) {
+               int n = valid_utf8_char (str);
+               if (n < 0) {
+                       eprintf ("\\x%02x", (int)(unsigned char)*str);
+                       str ++;
+               } else if (n >= 2) {
+                       int i;
+                       for (i = 0; i < n; i++) {
+                               eprintf ("%c", *(str ++));
+                       }
+               } else if (((unsigned char)*str) >= ' ' && *str != '"' && *str != '\\') {
+                       eprintf ("%c", *str);
+                       str ++;
+               } else {
+                       switch (*str) {
+                       case '\n':
+                               eprintf("\\n");
+                               break;
+                       case '\r':
+                               eprintf("\\r");
+                               break;
+                       case '\t':
+                               eprintf("\\t");
+                               break;
+                       case '\b':
+                               eprintf("\\b");
+                               break;
+                       case '\a':
+                               eprintf("\\a");
+                               break;
+                       case '\\':
+                               eprintf ("\\\\");
+                               break;
+                       case '"':
+                               eprintf ("\\\"");
+                               break;
+                       default:
+                               eprintf ("\\x%02x", (int)(unsigned char)*str);
+                               break;
+                       }
+                       str ++;
+               }
+       }
+       eprintf ("\"");
+}
+
+void expand_backslashed(char *s, int len)
+{
+       int backslashed = 0;
+       exp_buffer_pos = 0;
+       int i = 0;
+       while (i < len) {
+               assert (i + 3 <= (1 << 25));
+               if (backslashed) {
+                       backslashed = 0;
+                       switch (s[i ++]) {
+                       case 'n':
+                               exp_buffer[exp_buffer_pos ++] = '\n';
+                               break;
+                       case 'r':
+                               exp_buffer[exp_buffer_pos ++] = '\r';
+                               break;
+                       case 't':
+                               exp_buffer[exp_buffer_pos ++] = '\t';
+                               break;
+                       case 'b':
+                               exp_buffer[exp_buffer_pos ++] = '\b';
+                               break;
+                       case 'a':
+                               exp_buffer[exp_buffer_pos ++] = '\a';
+                               break;
+                       case '\\':
+                               exp_buffer[exp_buffer_pos ++] = '\\';
+                               break;
+                       case 'x':
+                               if (i + 2 > len || !is_hex(s[i]) || !is_hex (s[i + 1])) {
+                                       exp_buffer_pos = -1;
+                                       return;
+                               }
+                               exp_buffer[exp_buffer_pos ++] = hex2dec (s[i]) * 16 + hex2dec(s[i + 1]);
+                               i += 2;
+                               break;
+                       default:
+                               break;
+                       }
+               } else {
+                       if (s[i] == '\\') {
+                               backslashed = 1;
+                               i ++;
+                       } else {
+                               exp_buffer[exp_buffer_pos ++] = s[i ++];
+                       }
+               }
+       }
+}
+
+void add_var_to_be_freed(struct paramed_type *P)
+{
+       assert (fvars_pos < MAX_FVARS);
+       fvars[fvars_pos ++] = P;
+}
+
+int is_wspc(char c)
+{
+       return c <= 32 && c > 0;
+}
+
+void skip_wspc(void)
+{
+       while (buffer_pos < buffer_end && is_wspc(*buffer_pos)) {
+               buffer_pos ++;
+       }
+}
+
+void local_next_token(void)
+{
+       skip_wspc();
+       cur_token_quoted = 0;
+
+       if (buffer_pos >= buffer_end) {
+               cur_token_len = -3;
+               cur_token_real_len = 0;
+               return;
+       }
+
+       char c = *buffer_pos;
+
+       if (is_letter(c)) {
+               cur_token = buffer_pos;
+               while (buffer_pos < buffer_end && is_letter (*buffer_pos)) {
+                       buffer_pos ++;
+               }
+               if (buffer_pos < buffer_end) {
+                       cur_token_len = buffer_pos - cur_token;
+               } else {
+                       cur_token_real_len = buffer_pos - cur_token;
+                       cur_token_len = -3;
+               }
+               return;
+       } else if (c == '"') {
+               cur_token_quoted = 1;
+               cur_token = buffer_pos ++;
+               int backslashed = 0;
+               while (buffer_pos < buffer_end && (*buffer_pos != '"' || backslashed)) {
+                       if (*buffer_pos == '\\') {
+                               backslashed ^= 1;
+                       } else {
+                               backslashed = 0;
+                       }
+                       buffer_pos ++;
+               }
+               if (*buffer_pos == '"') {
+                       buffer_pos ++;
+                       expand_backslashed(cur_token + 1, buffer_pos - cur_token - 2);
+                       if (exp_buffer_pos < 0) {
+                               cur_token_len = -2;
+                       } else {
+                               cur_token_len = exp_buffer_pos;
+                               cur_token = exp_buffer;
+                       }
+               } else {
+                       cur_token_len = -2;
+               }
+               return;
+       } else {
+               if (c) {
+                       cur_token = buffer_pos ++;
+                       cur_token_len = 1;
+               } else {
+                       cur_token_len = -3;
+                       cur_token_real_len = 0;
+               }
+       }
+}
+
+void tgl_paramed_type_free(struct paramed_type *P)
+{
+       if (ODDP(P)) { return; }
+       if (P->type->params_num) {
+               int i;
+               for(i = 0; i < P->type->params_num; i++) {
+                       tgl_paramed_type_free(P->params[i]);
+               }
+               free(P->params);
+       }
+       free(P->type->id);
+       free(P->type);
+       free(P);
+}
+
+
+/****************************************************************************************************************/
+
+
+
+
+int skip_constructor_account_days_t_t_l (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb8d0afdf && T->type->name != 0x472f5020)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_account_days_t_t_l (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb8d0afdf && T->type->name != 0x472f5020)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_account_days_t_t_l (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb8d0afdf && T->type->name != 0x472f5020)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int autocomplete_constructor_account_days_t_t_l (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb8d0afdf && T->type->name != 0x472f5020)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_audio_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_audio_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_audio_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return -1; }
+  eprintf (" audioEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_audio_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field7) < 0) { return -1;}
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field8) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field7) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field8) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return -1; }
+  eprintf (" audio");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" access_hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" duration :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" mime_type :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" size :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" dc_id :"); }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field8) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9fc5ec4e && T->type->name != 0x603a13b1)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) {
+    set_autocomplete_string ("access_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_real_len)) {
+    set_autocomplete_string ("duration");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "duration", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_real_len)) {
+    set_autocomplete_string ("mime_type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "mime_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_real_len)) {
+    set_autocomplete_string ("size");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "size", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field7) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_real_len)) {
+    set_autocomplete_string ("dc_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "dc_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field8) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_bool_false (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return -1; }
+  return 0;
+}
+int store_constructor_bool_false (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return -1; }
+  return 0;
+}
+int fetch_constructor_bool_false (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return -1; }
+  eprintf (" boolFalse");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_bool_false (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return -1; }
+  return 0;
+}
+int skip_constructor_bool_true (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return -1; }
+  return 0;
+}
+int store_constructor_bool_true (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return -1; }
+  return 0;
+}
+int fetch_constructor_bool_true (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return -1; }
+  eprintf (" boolTrue");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_bool_true (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x250be282 && T->type->name != 0xdaf41d7d)) { return -1; }
+  return 0;
+}
+int skip_constructor_bytes (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0ee1379f && T->type->name != 0xf11ec860)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_bytes (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0ee1379f && T->type->name != 0xf11ec860)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_bytes (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0ee1379f && T->type->name != 0xf11ec860)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field1) < 0) { return -1;}
+  return 0;
+}
+int autocomplete_constructor_bytes (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0ee1379f && T->type->name != 0xf11ec860)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_chat_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_chat_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_chat_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; }
+  eprintf (" chatEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_chat_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_chat_photo (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bool (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field7) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_chat_photo (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 18 && !cur_token_quoted && !memcmp (cur_token, "participants_count", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "left", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bool (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field7) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; }
+  eprintf (" chat");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" title :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" photo :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_chat_photo (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" participants_count :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" left :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bool (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" version :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) {
+    set_autocomplete_string ("title");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) {
+    set_autocomplete_string ("photo");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_chat_photo (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 18 && !cur_token_quoted && !memcmp (cur_token, "participants_count", cur_token_real_len)) {
+    set_autocomplete_string ("participants_count");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 18 && !memcmp (cur_token, "participants_count", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "left", cur_token_real_len)) {
+    set_autocomplete_string ("left");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "left", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bool (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_real_len)) {
+    set_autocomplete_string ("version");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "version", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field7) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_chat_forbidden (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_chat_forbidden (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_chat_forbidden (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; }
+  eprintf (" chatForbidden");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" title :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_chat_forbidden (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) {
+    set_autocomplete_string ("title");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_geo_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_geo_point (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_chat_photo (field7) < 0) { return -1;}
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field8) < 0) { return -1;}
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field9) < 0) { return -1;}
+  struct paramed_type *field10 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bool (field10) < 0) { return -1;}
+  struct paramed_type *field11 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field11) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_geo_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "address", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "venue", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "geo", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_geo_point (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_chat_photo (field7) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 18 && !cur_token_quoted && !memcmp (cur_token, "participants_count", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field8) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field9) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "checked_in", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field10 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bool (field10) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field11 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field11) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_geo_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; }
+  eprintf (" geoChat");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" access_hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" title :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" address :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" venue :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" geo :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_geo_point (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" photo :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_chat_photo (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" participants_count :"); }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field8) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field9) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" checked_in :"); }
+  struct paramed_type *field10 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bool (field10) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" version :"); }
+  struct paramed_type *field11 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field11) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_geo_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7bd865dc && T->type->name != 0x84279a23)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) {
+    set_autocomplete_string ("access_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) {
+    set_autocomplete_string ("title");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "address", cur_token_real_len)) {
+    set_autocomplete_string ("address");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "address", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "venue", cur_token_real_len)) {
+    set_autocomplete_string ("venue");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "venue", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "geo", cur_token_real_len)) {
+    set_autocomplete_string ("geo");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "geo", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_geo_point (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) {
+    set_autocomplete_string ("photo");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x56922676, .id = "ChatPhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_chat_photo (field7) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 18 && !cur_token_quoted && !memcmp (cur_token, "participants_count", cur_token_real_len)) {
+    set_autocomplete_string ("participants_count");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 18 && !memcmp (cur_token, "participants_count", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field8) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field9) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "checked_in", cur_token_real_len)) {
+    set_autocomplete_string ("checked_in");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "checked_in", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field10 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bool (field10) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_real_len)) {
+    set_autocomplete_string ("version");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "version", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field11 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field11) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_chat_full (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x630e61be && T->type->name != 0x9cf19e41)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_chat_participants (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_photo (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_peer_notify_settings (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_chat_full (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x630e61be && T->type->name != 0x9cf19e41)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "participants", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_chat_participants (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "chat_photo", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_photo (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "notify_settings", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_peer_notify_settings (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_chat_full (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x630e61be && T->type->name != 0x9cf19e41)) { return -1; }
+  eprintf (" chatFull");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" participants :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_chat_participants (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chat_photo :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_photo (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" notify_settings :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_peer_notify_settings (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_chat_full (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x630e61be && T->type->name != 0x9cf19e41)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "participants", cur_token_real_len)) {
+    set_autocomplete_string ("participants");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "participants", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_chat_participants (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "chat_photo", cur_token_real_len)) {
+    set_autocomplete_string ("chat_photo");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "chat_photo", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_photo (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "notify_settings", cur_token_real_len)) {
+    set_autocomplete_string ("notify_settings");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "notify_settings", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_peer_notify_settings (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_chat_located (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3631cf4c && T->type->name != 0xc9ce30b3)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_chat_located (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3631cf4c && T->type->name != 0xc9ce30b3)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "distance", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_chat_located (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3631cf4c && T->type->name != 0xc9ce30b3)) { return -1; }
+  eprintf (" chatLocated");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chat_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" distance :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_chat_located (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3631cf4c && T->type->name != 0xc9ce30b3)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) {
+    set_autocomplete_string ("chat_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "distance", cur_token_real_len)) {
+    set_autocomplete_string ("distance");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "distance", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_chat_participant (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc8d7493e && T->type->name != 0x3728b6c1)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_chat_participant (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc8d7493e && T->type->name != 0x3728b6c1)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "inviter_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_chat_participant (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc8d7493e && T->type->name != 0x3728b6c1)) { return -1; }
+  eprintf (" chatParticipant");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" inviter_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_chat_participant (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc8d7493e && T->type->name != 0x3728b6c1)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "inviter_id", cur_token_real_len)) {
+    set_autocomplete_string ("inviter_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "inviter_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_chat_participants_forbidden (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_chat_participants_forbidden (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_chat_participants_forbidden (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return -1; }
+  eprintf (" chatParticipantsForbidden");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chat_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_chat_participants_forbidden (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) {
+    set_autocomplete_string ("chat_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_chat_participants (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_chat_participants (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "admin_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "participants", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_chat_participants (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return -1; }
+  eprintf (" chatParticipants");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chat_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" admin_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" participants :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" version :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_chat_participants (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x77930f9f && T->type->name != 0x886cf060)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) {
+    set_autocomplete_string ("chat_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "admin_id", cur_token_real_len)) {
+    set_autocomplete_string ("admin_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "admin_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "participants", cur_token_real_len)) {
+    set_autocomplete_string ("participants");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "participants", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xc8d7493e, .id = "ChatParticipant", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_real_len)) {
+    set_autocomplete_string ("version");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "version", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_chat_photo_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return -1; }
+  return 0;
+}
+int store_constructor_chat_photo_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return -1; }
+  return 0;
+}
+int fetch_constructor_chat_photo_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return -1; }
+  eprintf (" chatPhotoEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_chat_photo_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return -1; }
+  return 0;
+}
+int skip_constructor_chat_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_file_location (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_file_location (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_chat_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "photo_small", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_file_location (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "photo_big", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_file_location (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_chat_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return -1; }
+  eprintf (" chatPhoto");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" photo_small :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_file_location (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" photo_big :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_file_location (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_chat_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x56922676 && T->type->name != 0xa96dd989)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "photo_small", cur_token_real_len)) {
+    set_autocomplete_string ("photo_small");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "photo_small", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_file_location (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "photo_big", cur_token_real_len)) {
+    set_autocomplete_string ("photo_big");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "photo_big", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_file_location (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_client_d_h_inner_data (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6643b654 && T->type->name != 0x99bc49ab)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int128 (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int128 (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_client_d_h_inner_data (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6643b654 && T->type->name != 0x99bc49ab)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "retry_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "g_b", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_client_d_h_inner_data (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6643b654 && T->type->name != 0x99bc49ab)) { return -1; }
+  eprintf (" client_DH_inner_data");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" nonce :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int128 (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" server_nonce :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int128 (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" retry_id :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" g_b :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_client_d_h_inner_data (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6643b654 && T->type->name != 0x99bc49ab)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) {
+    set_autocomplete_string ("nonce");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_real_len)) {
+    set_autocomplete_string ("server_nonce");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "server_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "retry_id", cur_token_real_len)) {
+    set_autocomplete_string ("retry_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "retry_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "g_b", cur_token_real_len)) {
+    set_autocomplete_string ("g_b");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "g_b", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_config (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x2e54dd74 && T->type->name != 0xd1ab228b)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bool (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x2ec2a43c, .id = "DcOption", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field6) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_config (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x2e54dd74 && T->type->name != 0xd1ab228b)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "test_mode", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bool (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "this_dc", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "dc_options", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x2ec2a43c, .id = "DcOption", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 13 && !cur_token_quoted && !memcmp (cur_token, "chat_size_max", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 18 && !cur_token_quoted && !memcmp (cur_token, "broadcast_size_max", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field6) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_config (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x2e54dd74 && T->type->name != 0xd1ab228b)) { return -1; }
+  eprintf (" config");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" test_mode :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bool (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" this_dc :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" dc_options :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x2ec2a43c, .id = "DcOption", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chat_size_max :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" broadcast_size_max :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_config (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x2e54dd74 && T->type->name != 0xd1ab228b)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "test_mode", cur_token_real_len)) {
+    set_autocomplete_string ("test_mode");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "test_mode", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bool (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "this_dc", cur_token_real_len)) {
+    set_autocomplete_string ("this_dc");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "this_dc", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "dc_options", cur_token_real_len)) {
+    set_autocomplete_string ("dc_options");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "dc_options", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x2ec2a43c, .id = "DcOption", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 13 && !cur_token_quoted && !memcmp (cur_token, "chat_size_max", cur_token_real_len)) {
+    set_autocomplete_string ("chat_size_max");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 13 && !memcmp (cur_token, "chat_size_max", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 18 && !cur_token_quoted && !memcmp (cur_token, "broadcast_size_max", cur_token_real_len)) {
+    set_autocomplete_string ("broadcast_size_max");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 18 && !memcmp (cur_token, "broadcast_size_max", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field6) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf911c994 && T->type->name != 0x06ee366b)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bool (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf911c994 && T->type->name != 0x06ee366b)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "mutual", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bool (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf911c994 && T->type->name != 0x06ee366b)) { return -1; }
+  eprintf (" contact");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" mutual :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bool (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf911c994 && T->type->name != 0x06ee366b)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "mutual", cur_token_real_len)) {
+    set_autocomplete_string ("mutual");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "mutual", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bool (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_contact_blocked (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x561bc879 && T->type->name != 0xa9e43786)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_contact_blocked (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x561bc879 && T->type->name != 0xa9e43786)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_contact_blocked (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x561bc879 && T->type->name != 0xa9e43786)) { return -1; }
+  eprintf (" contactBlocked");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_contact_blocked (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x561bc879 && T->type->name != 0xa9e43786)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_contact_found (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xea879f95 && T->type->name != 0x1578606a)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_contact_found (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xea879f95 && T->type->name != 0x1578606a)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_contact_found (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xea879f95 && T->type->name != 0x1578606a)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int autocomplete_constructor_contact_found (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xea879f95 && T->type->name != 0x1578606a)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_contact_status (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xd3680c61 && T->type->name != 0x2c97f39e)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_user_status (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_contact_status (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xd3680c61 && T->type->name != 0x2c97f39e)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "status", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_user_status (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_contact_status (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xd3680c61 && T->type->name != 0x2c97f39e)) { return -1; }
+  eprintf (" contactStatus");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" status :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_user_status (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_contact_status (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xd3680c61 && T->type->name != 0x2c97f39e)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "status", cur_token_real_len)) {
+    set_autocomplete_string ("status");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "status", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_user_status (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_contact_suggested (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3de191a1 && T->type->name != 0xc21e6e5e)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_contact_suggested (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3de191a1 && T->type->name != 0xc21e6e5e)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "mutual_contacts", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_contact_suggested (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3de191a1 && T->type->name != 0xc21e6e5e)) { return -1; }
+  eprintf (" contactSuggested");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" mutual_contacts :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_contact_suggested (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3de191a1 && T->type->name != 0xc21e6e5e)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "mutual_contacts", cur_token_real_len)) {
+    set_autocomplete_string ("mutual_contacts");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "mutual_contacts", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_dc_option (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x2ec2a43c && T->type->name != 0xd13d5bc3)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_dc_option (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x2ec2a43c && T->type->name != 0xd13d5bc3)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "hostname", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "ip_address", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "port", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_dc_option (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x2ec2a43c && T->type->name != 0xd13d5bc3)) { return -1; }
+  eprintf (" dcOption");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" hostname :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" ip_address :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" port :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_dc_option (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x2ec2a43c && T->type->name != 0xd13d5bc3)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "hostname", cur_token_real_len)) {
+    set_autocomplete_string ("hostname");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "hostname", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "ip_address", cur_token_real_len)) {
+    set_autocomplete_string ("ip_address");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "ip_address", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "port", cur_token_real_len)) {
+    set_autocomplete_string ("port");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "port", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_decrypted_message_l16 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe692047a && T->type->name != 0x196dfb85)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe21b7dd5, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_decrypted_message_media (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_decrypted_message_l16 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe692047a && T->type->name != 0x196dfb85)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "random_bytes", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe21b7dd5, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_decrypted_message_media (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_decrypted_message_l16 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe692047a && T->type->name != 0x196dfb85)) { return -1; }
+  eprintf (" decryptedMessage_l16");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" random_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" random_bytes :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" message :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" media :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe21b7dd5, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_decrypted_message_media (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_decrypted_message_l16 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe692047a && T->type->name != 0x196dfb85)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) {
+    set_autocomplete_string ("random_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "random_bytes", cur_token_real_len)) {
+    set_autocomplete_string ("random_bytes");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "random_bytes", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) {
+    set_autocomplete_string ("message");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_real_len)) {
+    set_autocomplete_string ("media");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "media", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe21b7dd5, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_decrypted_message_media (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_decrypted_message_service_l16 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe692047a && T->type->name != 0x196dfb85)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_decrypted_message_action (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_decrypted_message_service_l16 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe692047a && T->type->name != 0x196dfb85)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "random_bytes", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_decrypted_message_action (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_decrypted_message_service_l16 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe692047a && T->type->name != 0x196dfb85)) { return -1; }
+  eprintf (" decryptedMessageService_l16");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" random_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" random_bytes :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" action :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_decrypted_message_action (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_decrypted_message_service_l16 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe692047a && T->type->name != 0x196dfb85)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) {
+    set_autocomplete_string ("random_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "random_bytes", cur_token_real_len)) {
+    set_autocomplete_string ("random_bytes");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "random_bytes", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_real_len)) {
+    set_autocomplete_string ("action");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "action", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_decrypted_message_action (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_decrypted_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe692047a && T->type->name != 0x196dfb85)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe21b7dd5, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_decrypted_message_media (field7) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_decrypted_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe692047a && T->type->name != 0x196dfb85)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "in_seq_no", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "out_seq_no", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "ttl", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "random_bytes", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe21b7dd5, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_decrypted_message_media (field7) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_decrypted_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe692047a && T->type->name != 0x196dfb85)) { return -1; }
+  eprintf (" decryptedMessage");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" in_seq_no :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" out_seq_no :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" ttl :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" random_id :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" random_bytes :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" message :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" media :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe21b7dd5, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_decrypted_message_media (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_decrypted_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe692047a && T->type->name != 0x196dfb85)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "in_seq_no", cur_token_real_len)) {
+    set_autocomplete_string ("in_seq_no");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "in_seq_no", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "out_seq_no", cur_token_real_len)) {
+    set_autocomplete_string ("out_seq_no");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "out_seq_no", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "ttl", cur_token_real_len)) {
+    set_autocomplete_string ("ttl");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "ttl", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) {
+    set_autocomplete_string ("random_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "random_bytes", cur_token_real_len)) {
+    set_autocomplete_string ("random_bytes");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "random_bytes", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) {
+    set_autocomplete_string ("message");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_real_len)) {
+    set_autocomplete_string ("media");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "media", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe21b7dd5, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_decrypted_message_media (field7) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_decrypted_message_service (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe692047a && T->type->name != 0x196dfb85)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_decrypted_message_action (field5) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_decrypted_message_service (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe692047a && T->type->name != 0x196dfb85)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "in_seq_no", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "out_seq_no", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "random_bytes", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_decrypted_message_action (field5) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_decrypted_message_service (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe692047a && T->type->name != 0x196dfb85)) { return -1; }
+  eprintf (" decryptedMessageService");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" in_seq_no :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" out_seq_no :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" random_id :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" random_bytes :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" action :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_decrypted_message_action (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_decrypted_message_service (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe692047a && T->type->name != 0x196dfb85)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "in_seq_no", cur_token_real_len)) {
+    set_autocomplete_string ("in_seq_no");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "in_seq_no", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "out_seq_no", cur_token_real_len)) {
+    set_autocomplete_string ("out_seq_no");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "out_seq_no", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) {
+    set_autocomplete_string ("random_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "random_bytes", cur_token_real_len)) {
+    set_autocomplete_string ("random_bytes");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "random_bytes", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_real_len)) {
+    set_autocomplete_string ("action");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "action", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_decrypted_message_action (field5) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_decrypted_message_action_set_message_t_t_l (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_decrypted_message_action_set_message_t_t_l (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "ttl_seconds", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_decrypted_message_action_set_message_t_t_l (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  eprintf (" decryptedMessageActionSetMessageTTL");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" ttl_seconds :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_decrypted_message_action_set_message_t_t_l (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "ttl_seconds", cur_token_real_len)) {
+    set_autocomplete_string ("ttl_seconds");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "ttl_seconds", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_decrypted_message_action_read_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_decrypted_message_action_read_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "random_ids", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_decrypted_message_action_read_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  eprintf (" decryptedMessageActionReadMessages");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" random_ids :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_decrypted_message_action_read_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "random_ids", cur_token_real_len)) {
+    set_autocomplete_string ("random_ids");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "random_ids", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_decrypted_message_action_delete_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_decrypted_message_action_delete_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "random_ids", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_decrypted_message_action_delete_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  eprintf (" decryptedMessageActionDeleteMessages");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" random_ids :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_decrypted_message_action_delete_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "random_ids", cur_token_real_len)) {
+    set_autocomplete_string ("random_ids");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "random_ids", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_decrypted_message_action_screenshot_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_decrypted_message_action_screenshot_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "random_ids", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_decrypted_message_action_screenshot_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  eprintf (" decryptedMessageActionScreenshotMessages");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" random_ids :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_decrypted_message_action_screenshot_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "random_ids", cur_token_real_len)) {
+    set_autocomplete_string ("random_ids");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "random_ids", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_decrypted_message_action_flush_history (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  return 0;
+}
+int store_constructor_decrypted_message_action_flush_history (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  return 0;
+}
+int fetch_constructor_decrypted_message_action_flush_history (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  eprintf (" decryptedMessageActionFlushHistory");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_decrypted_message_action_flush_history (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  return 0;
+}
+int skip_constructor_decrypted_message_action_notify_layer (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_decrypted_message_action_notify_layer (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "layer", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_decrypted_message_action_notify_layer (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  eprintf (" decryptedMessageActionNotifyLayer");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" layer :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_decrypted_message_action_notify_layer (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "layer", cur_token_real_len)) {
+    set_autocomplete_string ("layer");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "layer", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_decrypted_message_action_resend (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_decrypted_message_action_resend (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "start_seq_no", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "end_seq_no", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_decrypted_message_action_resend (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  eprintf (" decryptedMessageActionResend");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" start_seq_no :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" end_seq_no :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_decrypted_message_action_resend (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "start_seq_no", cur_token_real_len)) {
+    set_autocomplete_string ("start_seq_no");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "start_seq_no", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "end_seq_no", cur_token_real_len)) {
+    set_autocomplete_string ("end_seq_no");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "end_seq_no", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_decrypted_message_action_typing (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x88a65ee1, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_send_message_action (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_decrypted_message_action_typing (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x88a65ee1, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_send_message_action (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_decrypted_message_action_typing (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  eprintf (" decryptedMessageActionTyping");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" action :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x88a65ee1, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_send_message_action (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_decrypted_message_action_typing (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_real_len)) {
+    set_autocomplete_string ("action");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "action", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x88a65ee1, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_send_message_action (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_decrypted_message_action_request_key (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_decrypted_message_action_request_key (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "exchange_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "g_a", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_decrypted_message_action_request_key (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  eprintf (" decryptedMessageActionRequestKey");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" exchange_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" g_a :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_decrypted_message_action_request_key (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "exchange_id", cur_token_real_len)) {
+    set_autocomplete_string ("exchange_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "exchange_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "g_a", cur_token_real_len)) {
+    set_autocomplete_string ("g_a");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "g_a", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_decrypted_message_action_accept_key (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_decrypted_message_action_accept_key (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "exchange_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "g_b", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_decrypted_message_action_accept_key (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  eprintf (" decryptedMessageActionAcceptKey");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" exchange_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" g_b :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" key_fingerprint :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_decrypted_message_action_accept_key (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "exchange_id", cur_token_real_len)) {
+    set_autocomplete_string ("exchange_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "exchange_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "g_b", cur_token_real_len)) {
+    set_autocomplete_string ("g_b");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "g_b", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_real_len)) {
+    set_autocomplete_string ("key_fingerprint");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "key_fingerprint", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_decrypted_message_action_commit_key (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_decrypted_message_action_commit_key (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "exchange_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_decrypted_message_action_commit_key (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  eprintf (" decryptedMessageActionCommitKey");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" exchange_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" key_fingerprint :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_decrypted_message_action_commit_key (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "exchange_id", cur_token_real_len)) {
+    set_autocomplete_string ("exchange_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "exchange_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_real_len)) {
+    set_autocomplete_string ("key_fingerprint");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "key_fingerprint", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_decrypted_message_action_abort_key (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_decrypted_message_action_abort_key (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "exchange_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_decrypted_message_action_abort_key (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  eprintf (" decryptedMessageActionAbortKey");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" exchange_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_decrypted_message_action_abort_key (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "exchange_id", cur_token_real_len)) {
+    set_autocomplete_string ("exchange_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "exchange_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_decrypted_message_action_noop (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  return 0;
+}
+int store_constructor_decrypted_message_action_noop (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  return 0;
+}
+int fetch_constructor_decrypted_message_action_noop (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  eprintf (" decryptedMessageActionNoop");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_decrypted_message_action_noop (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4e0eefde && T->type->name != 0xb1f11021)) { return -1; }
+  return 0;
+}
+int skip_constructor_decrypted_message_layer (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x1be31789 && T->type->name != 0xe41ce876)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe692047a, .id = "DecryptedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_decrypted_message (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_decrypted_message_layer (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x1be31789 && T->type->name != 0xe41ce876)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "layer", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe692047a, .id = "DecryptedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_decrypted_message (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_decrypted_message_layer (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x1be31789 && T->type->name != 0xe41ce876)) { return -1; }
+  eprintf (" decryptedMessageLayer");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" layer :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" message :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe692047a, .id = "DecryptedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_decrypted_message (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_decrypted_message_layer (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x1be31789 && T->type->name != 0xe41ce876)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "layer", cur_token_real_len)) {
+    set_autocomplete_string ("layer");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "layer", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) {
+    set_autocomplete_string ("message");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe692047a, .id = "DecryptedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_decrypted_message (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_decrypted_message_media_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  return 0;
+}
+int store_constructor_decrypted_message_media_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  return 0;
+}
+int fetch_constructor_decrypted_message_media_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  eprintf (" decryptedMessageMediaEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_decrypted_message_media_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  return 0;
+}
+int skip_constructor_decrypted_message_media_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field7) < 0) { return -1;}
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field8) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_decrypted_message_media_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_w", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_h", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field7) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "iv", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field8) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_decrypted_message_media_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  eprintf (" decryptedMessageMediaPhoto");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" thumb :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" thumb_w :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" thumb_h :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" w :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" h :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" size :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" key :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" iv :"); }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field8) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_decrypted_message_media_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_real_len)) {
+    set_autocomplete_string ("thumb");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "thumb", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_w", cur_token_real_len)) {
+    set_autocomplete_string ("thumb_w");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "thumb_w", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_h", cur_token_real_len)) {
+    set_autocomplete_string ("thumb_h");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "thumb_h", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_real_len)) {
+    set_autocomplete_string ("w");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "w", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_real_len)) {
+    set_autocomplete_string ("h");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "h", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_real_len)) {
+    set_autocomplete_string ("size");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "size", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) {
+    set_autocomplete_string ("key");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field7) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "iv", cur_token_real_len)) {
+    set_autocomplete_string ("iv");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "iv", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field8) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_decrypted_message_media_geo_point (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_double (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_double (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_decrypted_message_media_geo_point (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "lat", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_double (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "long", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_double (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_decrypted_message_media_geo_point (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  eprintf (" decryptedMessageMediaGeoPoint");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" lat :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_double (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" long :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_double (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_decrypted_message_media_geo_point (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "lat", cur_token_real_len)) {
+    set_autocomplete_string ("lat");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "lat", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_double (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "long", cur_token_real_len)) {
+    set_autocomplete_string ("long");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "long", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_double (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_decrypted_message_media_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_decrypted_message_media_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_decrypted_message_media_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  eprintf (" decryptedMessageMediaContact");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" phone_number :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" first_name :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" last_name :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_decrypted_message_media_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_real_len)) {
+    set_autocomplete_string ("phone_number");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "phone_number", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_real_len)) {
+    set_autocomplete_string ("first_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_real_len)) {
+    set_autocomplete_string ("last_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_decrypted_message_media_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field7) < 0) { return -1;}
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field8) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_decrypted_message_media_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_w", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_h", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "file_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field7) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "iv", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field8) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_decrypted_message_media_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  eprintf (" decryptedMessageMediaDocument");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" thumb :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" thumb_w :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" thumb_h :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" file_name :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" mime_type :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" size :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" key :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" iv :"); }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field8) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_decrypted_message_media_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_real_len)) {
+    set_autocomplete_string ("thumb");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "thumb", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_w", cur_token_real_len)) {
+    set_autocomplete_string ("thumb_w");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "thumb_w", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_h", cur_token_real_len)) {
+    set_autocomplete_string ("thumb_h");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "thumb_h", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "file_name", cur_token_real_len)) {
+    set_autocomplete_string ("file_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "file_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_real_len)) {
+    set_autocomplete_string ("mime_type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "mime_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_real_len)) {
+    set_autocomplete_string ("size");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "size", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) {
+    set_autocomplete_string ("key");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field7) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "iv", cur_token_real_len)) {
+    set_autocomplete_string ("iv");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "iv", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field8) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_decrypted_message_media_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field7) < 0) { return -1;}
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field8) < 0) { return -1;}
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field9) < 0) { return -1;}
+  struct paramed_type *field10 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field10) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_decrypted_message_media_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_w", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_h", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field7) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field8) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field9) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "iv", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field10 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field10) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_decrypted_message_media_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  eprintf (" decryptedMessageMediaVideo");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" thumb :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" thumb_w :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" thumb_h :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" duration :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" mime_type :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" w :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" h :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" size :"); }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field8) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" key :"); }
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field9) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" iv :"); }
+  struct paramed_type *field10 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field10) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_decrypted_message_media_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_real_len)) {
+    set_autocomplete_string ("thumb");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "thumb", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_w", cur_token_real_len)) {
+    set_autocomplete_string ("thumb_w");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "thumb_w", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_h", cur_token_real_len)) {
+    set_autocomplete_string ("thumb_h");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "thumb_h", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_real_len)) {
+    set_autocomplete_string ("duration");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "duration", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_real_len)) {
+    set_autocomplete_string ("mime_type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "mime_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_real_len)) {
+    set_autocomplete_string ("w");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "w", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_real_len)) {
+    set_autocomplete_string ("h");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "h", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field7) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_real_len)) {
+    set_autocomplete_string ("size");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "size", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field8) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) {
+    set_autocomplete_string ("key");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field9) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "iv", cur_token_real_len)) {
+    set_autocomplete_string ("iv");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "iv", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field10 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field10) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_decrypted_message_media_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field5) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_decrypted_message_media_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "iv", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field5) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_decrypted_message_media_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  eprintf (" decryptedMessageMediaAudio");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" duration :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" mime_type :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" size :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" key :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" iv :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_decrypted_message_media_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe21b7dd5 && T->type->name != 0x1de4822a)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_real_len)) {
+    set_autocomplete_string ("duration");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "duration", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_real_len)) {
+    set_autocomplete_string ("mime_type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "mime_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_real_len)) {
+    set_autocomplete_string ("size");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "size", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) {
+    set_autocomplete_string ("key");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "iv", cur_token_real_len)) {
+    set_autocomplete_string ("iv");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "iv", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field5) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_dialog (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xab3a99ac && T->type->name != 0x54c56653)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_peer (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_peer_notify_settings (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_dialog (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xab3a99ac && T->type->name != 0x54c56653)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_peer (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "top_message", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "unread_count", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "notify_settings", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_peer_notify_settings (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_dialog (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xab3a99ac && T->type->name != 0x54c56653)) { return -1; }
+  eprintf (" dialog");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" peer :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_peer (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" top_message :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" unread_count :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" notify_settings :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_peer_notify_settings (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_dialog (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xab3a99ac && T->type->name != 0x54c56653)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_peer (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "top_message", cur_token_real_len)) {
+    set_autocomplete_string ("top_message");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "top_message", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "unread_count", cur_token_real_len)) {
+    set_autocomplete_string ("unread_count");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "unread_count", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "notify_settings", cur_token_real_len)) {
+    set_autocomplete_string ("notify_settings");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "notify_settings", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_peer_notify_settings (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_document_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_document_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_document_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; }
+  eprintf (" documentEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_document_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_photo_size (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field7) < 0) { return -1;}
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xcfd59b04, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field8) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_photo_size (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field7) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "attributes", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xcfd59b04, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field8) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; }
+  eprintf (" document");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" access_hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" mime_type :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" size :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" thumb :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_photo_size (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" dc_id :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" attributes :"); }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xcfd59b04, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field8) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) {
+    set_autocomplete_string ("access_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_real_len)) {
+    set_autocomplete_string ("mime_type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "mime_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_real_len)) {
+    set_autocomplete_string ("size");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "size", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_real_len)) {
+    set_autocomplete_string ("thumb");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "thumb", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_photo_size (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_real_len)) {
+    set_autocomplete_string ("dc_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "dc_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field7) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "attributes", cur_token_real_len)) {
+    set_autocomplete_string ("attributes");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "attributes", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xcfd59b04, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field8) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_document_l19 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field7) < 0) { return -1;}
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_photo_size (field8) < 0) { return -1;}
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field9) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_document_l19 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "file_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field7) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_photo_size (field8) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field9) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_document_l19 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; }
+  eprintf (" document_l19");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" access_hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" file_name :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" mime_type :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" size :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" thumb :"); }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_photo_size (field8) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" dc_id :"); }
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field9) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_document_l19 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x51a73418 && T->type->name != 0xae58cbe7)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) {
+    set_autocomplete_string ("access_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "file_name", cur_token_real_len)) {
+    set_autocomplete_string ("file_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "file_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_real_len)) {
+    set_autocomplete_string ("mime_type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "mime_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_real_len)) {
+    set_autocomplete_string ("size");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "size", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field7) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_real_len)) {
+    set_autocomplete_string ("thumb");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "thumb", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_photo_size (field8) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_real_len)) {
+    set_autocomplete_string ("dc_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "dc_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field9) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_document_attribute_image_size (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xcfd59b04 && T->type->name != 0x302a64fb)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_document_attribute_image_size (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xcfd59b04 && T->type->name != 0x302a64fb)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_document_attribute_image_size (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xcfd59b04 && T->type->name != 0x302a64fb)) { return -1; }
+  eprintf (" documentAttributeImageSize");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" w :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" h :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_document_attribute_image_size (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xcfd59b04 && T->type->name != 0x302a64fb)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_real_len)) {
+    set_autocomplete_string ("w");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "w", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_real_len)) {
+    set_autocomplete_string ("h");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "h", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_document_attribute_animated (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xcfd59b04 && T->type->name != 0x302a64fb)) { return -1; }
+  return 0;
+}
+int store_constructor_document_attribute_animated (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xcfd59b04 && T->type->name != 0x302a64fb)) { return -1; }
+  return 0;
+}
+int fetch_constructor_document_attribute_animated (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xcfd59b04 && T->type->name != 0x302a64fb)) { return -1; }
+  eprintf (" documentAttributeAnimated");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_document_attribute_animated (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xcfd59b04 && T->type->name != 0x302a64fb)) { return -1; }
+  return 0;
+}
+int skip_constructor_document_attribute_sticker (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xcfd59b04 && T->type->name != 0x302a64fb)) { return -1; }
+  return 0;
+}
+int store_constructor_document_attribute_sticker (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xcfd59b04 && T->type->name != 0x302a64fb)) { return -1; }
+  return 0;
+}
+int fetch_constructor_document_attribute_sticker (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xcfd59b04 && T->type->name != 0x302a64fb)) { return -1; }
+  eprintf (" documentAttributeSticker");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_document_attribute_sticker (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xcfd59b04 && T->type->name != 0x302a64fb)) { return -1; }
+  return 0;
+}
+int skip_constructor_document_attribute_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xcfd59b04 && T->type->name != 0x302a64fb)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_document_attribute_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xcfd59b04 && T->type->name != 0x302a64fb)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_document_attribute_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xcfd59b04 && T->type->name != 0x302a64fb)) { return -1; }
+  eprintf (" documentAttributeVideo");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" duration :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" w :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" h :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_document_attribute_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xcfd59b04 && T->type->name != 0x302a64fb)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_real_len)) {
+    set_autocomplete_string ("duration");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "duration", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_real_len)) {
+    set_autocomplete_string ("w");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "w", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_real_len)) {
+    set_autocomplete_string ("h");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "h", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_document_attribute_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xcfd59b04 && T->type->name != 0x302a64fb)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_document_attribute_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xcfd59b04 && T->type->name != 0x302a64fb)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_document_attribute_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xcfd59b04 && T->type->name != 0x302a64fb)) { return -1; }
+  eprintf (" documentAttributeAudio");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" duration :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_document_attribute_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xcfd59b04 && T->type->name != 0x302a64fb)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_real_len)) {
+    set_autocomplete_string ("duration");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "duration", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_document_attribute_filename (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xcfd59b04 && T->type->name != 0x302a64fb)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_document_attribute_filename (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xcfd59b04 && T->type->name != 0x302a64fb)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "file_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_document_attribute_filename (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xcfd59b04 && T->type->name != 0x302a64fb)) { return -1; }
+  eprintf (" documentAttributeFilename");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" file_name :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_document_attribute_filename (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xcfd59b04 && T->type->name != 0x302a64fb)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "file_name", cur_token_real_len)) {
+    set_autocomplete_string ("file_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "file_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_double (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x2210c154 && T->type->name != 0xddef3eab)) { return -1; }
+  if (in_remaining () < 8) { return -1;}
+  fetch_double ();
+  return 0;
+}
+int store_constructor_double (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x2210c154 && T->type->name != 0xddef3eab)) { return -1; }
+  if (is_double ()) {
+    out_double (get_double());
+    local_next_token ();
+    return 0;
+  } else {
+    return -1;
+  }
+}
+int fetch_constructor_double (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x2210c154 && T->type->name != 0xddef3eab)) { return -1; }
+  if (in_remaining () < 8) { return -1;}
+  eprintf (" %lf", fetch_double ());
+  return 0;
+}
+int autocomplete_constructor_double (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x2210c154 && T->type->name != 0xddef3eab)) { return -1; }
+  if (is_double ()) {
+    local_next_token ();
+    return 0;
+  } else {
+    return -1;
+  }
+}
+int skip_constructor_encrypted_chat_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_encrypted_chat_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_encrypted_chat_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; }
+  eprintf (" encryptedChatEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_encrypted_chat_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_encrypted_chat_waiting (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_encrypted_chat_waiting (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "admin_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "participant_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_encrypted_chat_waiting (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; }
+  eprintf (" encryptedChatWaiting");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" access_hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" admin_id :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" participant_id :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_encrypted_chat_waiting (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) {
+    set_autocomplete_string ("access_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "admin_id", cur_token_real_len)) {
+    set_autocomplete_string ("admin_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "admin_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "participant_id", cur_token_real_len)) {
+    set_autocomplete_string ("participant_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "participant_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_encrypted_chat_requested (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field6) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_encrypted_chat_requested (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "admin_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "participant_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "g_a", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field6) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_encrypted_chat_requested (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; }
+  eprintf (" encryptedChatRequested");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" access_hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" admin_id :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" participant_id :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" g_a :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_encrypted_chat_requested (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) {
+    set_autocomplete_string ("access_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "admin_id", cur_token_real_len)) {
+    set_autocomplete_string ("admin_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "admin_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "participant_id", cur_token_real_len)) {
+    set_autocomplete_string ("participant_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "participant_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "g_a", cur_token_real_len)) {
+    set_autocomplete_string ("g_a");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "g_a", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field6) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_encrypted_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field7) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_encrypted_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "admin_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "participant_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "g_a_or_b", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field7) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_encrypted_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; }
+  eprintf (" encryptedChat");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" access_hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" admin_id :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" participant_id :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" g_a_or_b :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" key_fingerprint :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_encrypted_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) {
+    set_autocomplete_string ("access_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "admin_id", cur_token_real_len)) {
+    set_autocomplete_string ("admin_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "admin_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "participant_id", cur_token_real_len)) {
+    set_autocomplete_string ("participant_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "participant_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "g_a_or_b", cur_token_real_len)) {
+    set_autocomplete_string ("g_a_or_b");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "g_a_or_b", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_real_len)) {
+    set_autocomplete_string ("key_fingerprint");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "key_fingerprint", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field7) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_encrypted_chat_discarded (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_encrypted_chat_discarded (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_encrypted_chat_discarded (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; }
+  eprintf (" encryptedChatDiscarded");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_encrypted_chat_discarded (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb1718213 && T->type->name != 0x4e8e7dec)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_encrypted_file_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return -1; }
+  return 0;
+}
+int store_constructor_encrypted_file_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return -1; }
+  return 0;
+}
+int fetch_constructor_encrypted_file_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return -1; }
+  eprintf (" encryptedFileEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_encrypted_file_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return -1; }
+  return 0;
+}
+int skip_constructor_encrypted_file (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_encrypted_file (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_encrypted_file (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return -1; }
+  eprintf (" encryptedFile");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" access_hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" size :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" dc_id :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" key_fingerprint :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_encrypted_file (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x886fd032 && T->type->name != 0x77902fcd)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) {
+    set_autocomplete_string ("access_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_real_len)) {
+    set_autocomplete_string ("size");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "size", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_real_len)) {
+    set_autocomplete_string ("dc_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "dc_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_real_len)) {
+    set_autocomplete_string ("key_fingerprint");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "key_fingerprint", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_encrypted_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_encrypted_file (field5) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_encrypted_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_encrypted_file (field5) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_encrypted_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return -1; }
+  eprintf (" encryptedMessage");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" random_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chat_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" bytes :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" file :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_encrypted_file (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_encrypted_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) {
+    set_autocomplete_string ("random_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) {
+    set_autocomplete_string ("chat_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_real_len)) {
+    set_autocomplete_string ("bytes");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "bytes", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_real_len)) {
+    set_autocomplete_string ("file");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "file", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_encrypted_file (field5) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_encrypted_message_service (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_encrypted_message_service (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_encrypted_message_service (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return -1; }
+  eprintf (" encryptedMessageService");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" random_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chat_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" bytes :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_encrypted_message_service (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xce6b8a1e && T->type->name != 0x319475e1)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) {
+    set_autocomplete_string ("random_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) {
+    set_autocomplete_string ("chat_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_real_len)) {
+    set_autocomplete_string ("bytes");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "bytes", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_error (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc4b9f9bb && T->type->name != 0x3b460644)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_error (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc4b9f9bb && T->type->name != 0x3b460644)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "code", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "text", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_error (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc4b9f9bb && T->type->name != 0x3b460644)) { return -1; }
+  eprintf (" error");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" code :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" text :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_error (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc4b9f9bb && T->type->name != 0x3b460644)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "code", cur_token_real_len)) {
+    set_autocomplete_string ("code");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "code", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "text", cur_token_real_len)) {
+    set_autocomplete_string ("text");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "text", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_file_location_unavailable (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_file_location_unavailable (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "volume_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "local_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "secret", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_file_location_unavailable (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return -1; }
+  eprintf (" fileLocationUnavailable");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" volume_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" local_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" secret :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_file_location_unavailable (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "volume_id", cur_token_real_len)) {
+    set_autocomplete_string ("volume_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "volume_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "local_id", cur_token_real_len)) {
+    set_autocomplete_string ("local_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "local_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "secret", cur_token_real_len)) {
+    set_autocomplete_string ("secret");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "secret", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "volume_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "local_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "secret", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return -1; }
+  eprintf (" fileLocation");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" dc_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" volume_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" local_id :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" secret :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x2f8ffb30 && T->type->name != 0xd07004cf)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_real_len)) {
+    set_autocomplete_string ("dc_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "dc_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "volume_id", cur_token_real_len)) {
+    set_autocomplete_string ("volume_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "volume_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "local_id", cur_token_real_len)) {
+    set_autocomplete_string ("local_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "local_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "secret", cur_token_real_len)) {
+    set_autocomplete_string ("secret");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "secret", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_geo_chat_message_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_geo_chat_message_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_geo_chat_message_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; }
+  eprintf (" geoChatMessageEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chat_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_geo_chat_message_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) {
+    set_autocomplete_string ("chat_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_geo_chat_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9f690be5, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_message_media (field6) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_geo_chat_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9f690be5, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_message_media (field6) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_geo_chat_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; }
+  eprintf (" geoChatMessage");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chat_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" from_id :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" message :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" media :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9f690be5, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_message_media (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_geo_chat_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) {
+    set_autocomplete_string ("chat_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_real_len)) {
+    set_autocomplete_string ("from_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) {
+    set_autocomplete_string ("message");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_real_len)) {
+    set_autocomplete_string ("media");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "media", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9f690be5, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_message_media (field6) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_geo_chat_message_service (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xc0a8e012, .id = "MessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_message_action (field5) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_geo_chat_message_service (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xc0a8e012, .id = "MessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_message_action (field5) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_geo_chat_message_service (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; }
+  eprintf (" geoChatMessageService");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chat_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" from_id :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" action :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xc0a8e012, .id = "MessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_message_action (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_geo_chat_message_service (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf67b4034 && T->type->name != 0x0984bfcb)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) {
+    set_autocomplete_string ("chat_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_real_len)) {
+    set_autocomplete_string ("from_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_real_len)) {
+    set_autocomplete_string ("action");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "action", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xc0a8e012, .id = "MessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_message_action (field5) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_geo_point_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return -1; }
+  return 0;
+}
+int store_constructor_geo_point_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return -1; }
+  return 0;
+}
+int fetch_constructor_geo_point_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return -1; }
+  eprintf (" geoPointEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_geo_point_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return -1; }
+  return 0;
+}
+int skip_constructor_geo_point (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_double (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_double (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_geo_point (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "long", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_double (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "lat", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_double (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_geo_point (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return -1; }
+  eprintf (" geoPoint");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" long :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_double (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" lat :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_double (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_geo_point (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x315e0a53 && T->type->name != 0xcea1f5ac)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "long", cur_token_real_len)) {
+    set_autocomplete_string ("long");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "long", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_double (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "lat", cur_token_real_len)) {
+    set_autocomplete_string ("lat");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "lat", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_double (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_imported_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xd0028438 && T->type->name != 0x2ffd7bc7)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_imported_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xd0028438 && T->type->name != 0x2ffd7bc7)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "client_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_imported_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xd0028438 && T->type->name != 0x2ffd7bc7)) { return -1; }
+  eprintf (" importedContact");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" client_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_imported_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xd0028438 && T->type->name != 0x2ffd7bc7)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "client_id", cur_token_real_len)) {
+    set_autocomplete_string ("client_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "client_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_app_event (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x770656a8 && T->type->name != 0x88f9a957)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_double (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_app_event (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x770656a8 && T->type->name != 0x88f9a957)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "time", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_double (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "data", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_app_event (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x770656a8 && T->type->name != 0x88f9a957)) { return -1; }
+  eprintf (" inputAppEvent");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" time :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_double (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" type :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" peer :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" data :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_app_event (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x770656a8 && T->type->name != 0x88f9a957)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "time", cur_token_real_len)) {
+    set_autocomplete_string ("time");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "time", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_double (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "type", cur_token_real_len)) {
+    set_autocomplete_string ("type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "data", cur_token_real_len)) {
+    set_autocomplete_string ("data");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "data", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_audio_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return -1; }
+  return 0;
+}
+int store_constructor_input_audio_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_audio_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return -1; }
+  eprintf (" inputAudioEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_audio_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return -1; }
+  eprintf (" inputAudio");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" access_hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xae8e9c7b && T->type->name != 0x51716384)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) {
+    set_autocomplete_string ("access_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_chat_photo_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; }
+  return 0;
+}
+int store_constructor_input_chat_photo_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_chat_photo_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; }
+  eprintf (" inputChatPhotoEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_chat_photo_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_chat_uploaded_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_input_file (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_input_photo_crop (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_chat_uploaded_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_file (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "crop", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_photo_crop (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_chat_uploaded_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; }
+  eprintf (" inputChatUploadedPhoto");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" file :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_input_file (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" crop :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_input_photo_crop (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_chat_uploaded_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_real_len)) {
+    set_autocomplete_string ("file");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "file", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_file (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "crop", cur_token_real_len)) {
+    set_autocomplete_string ("crop");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "crop", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_photo_crop (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_chat_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_input_photo (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_input_photo_crop (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_chat_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_photo (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "crop", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_photo_crop (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_chat_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; }
+  eprintf (" inputChatPhoto");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_input_photo (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" crop :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_input_photo_crop (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_chat_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3a60776d && T->type->name != 0xc59f8892)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_photo (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "crop", cur_token_real_len)) {
+    set_autocomplete_string ("crop");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "crop", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_photo_crop (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_phone_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf392b7f4 && T->type->name != 0x0c6d480b)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_phone_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf392b7f4 && T->type->name != 0x0c6d480b)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "client_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "phone", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_phone_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf392b7f4 && T->type->name != 0x0c6d480b)) { return -1; }
+  eprintf (" inputPhoneContact");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" client_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" phone :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" first_name :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" last_name :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_phone_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf392b7f4 && T->type->name != 0x0c6d480b)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "client_id", cur_token_real_len)) {
+    set_autocomplete_string ("client_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "client_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "phone", cur_token_real_len)) {
+    set_autocomplete_string ("phone");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "phone", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_real_len)) {
+    set_autocomplete_string ("first_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_real_len)) {
+    set_autocomplete_string ("last_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_document_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return -1; }
+  return 0;
+}
+int store_constructor_input_document_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_document_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return -1; }
+  eprintf (" inputDocumentEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_document_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return -1; }
+  eprintf (" inputDocument");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" access_hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6a8963fc && T->type->name != 0x95769c03)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) {
+    set_autocomplete_string ("access_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_encrypted_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf141b5e1 && T->type->name != 0x0ebe4a1e)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_encrypted_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf141b5e1 && T->type->name != 0x0ebe4a1e)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_encrypted_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf141b5e1 && T->type->name != 0x0ebe4a1e)) { return -1; }
+  eprintf (" inputEncryptedChat");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chat_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" access_hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_encrypted_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf141b5e1 && T->type->name != 0x0ebe4a1e)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) {
+    set_autocomplete_string ("chat_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) {
+    set_autocomplete_string ("access_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_encrypted_file_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; }
+  return 0;
+}
+int store_constructor_input_encrypted_file_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_encrypted_file_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; }
+  eprintf (" inputEncryptedFileEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_encrypted_file_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_encrypted_file_uploaded (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_encrypted_file_uploaded (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "parts", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "md5_checksum", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_encrypted_file_uploaded (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; }
+  eprintf (" inputEncryptedFileUploaded");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" parts :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" md5_checksum :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" key_fingerprint :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_encrypted_file_uploaded (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "parts", cur_token_real_len)) {
+    set_autocomplete_string ("parts");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "parts", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "md5_checksum", cur_token_real_len)) {
+    set_autocomplete_string ("md5_checksum");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "md5_checksum", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_real_len)) {
+    set_autocomplete_string ("key_fingerprint");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "key_fingerprint", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_encrypted_file (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_encrypted_file (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_encrypted_file (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; }
+  eprintf (" inputEncryptedFile");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" access_hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_encrypted_file (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) {
+    set_autocomplete_string ("access_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_encrypted_file_big_uploaded (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_encrypted_file_big_uploaded (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "parts", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_encrypted_file_big_uploaded (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; }
+  eprintf (" inputEncryptedFileBigUploaded");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" parts :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" key_fingerprint :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_encrypted_file_big_uploaded (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0b5c064f && T->type->name != 0xf4a3f9b0)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "parts", cur_token_real_len)) {
+    set_autocomplete_string ("parts");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "parts", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_real_len)) {
+    set_autocomplete_string ("key_fingerprint");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "key_fingerprint", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_file (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_file (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "parts", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "md5_checksum", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_file (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return -1; }
+  eprintf (" inputFile");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" parts :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" name :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" md5_checksum :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_file (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "parts", cur_token_real_len)) {
+    set_autocomplete_string ("parts");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "parts", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "name", cur_token_real_len)) {
+    set_autocomplete_string ("name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "md5_checksum", cur_token_real_len)) {
+    set_autocomplete_string ("md5_checksum");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "md5_checksum", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_file_big (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_file_big (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "parts", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_file_big (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return -1; }
+  eprintf (" inputFileBig");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" parts :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" name :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_file_big (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0f60f9ca && T->type->name != 0xf09f0635)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "parts", cur_token_real_len)) {
+    set_autocomplete_string ("parts");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "parts", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "name", cur_token_real_len)) {
+    set_autocomplete_string ("name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "volume_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "local_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "secret", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; }
+  eprintf (" inputFileLocation");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" volume_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" local_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" secret :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "volume_id", cur_token_real_len)) {
+    set_autocomplete_string ("volume_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "volume_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "local_id", cur_token_real_len)) {
+    set_autocomplete_string ("local_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "local_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "secret", cur_token_real_len)) {
+    set_autocomplete_string ("secret");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "secret", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_video_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_video_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_video_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; }
+  eprintf (" inputVideoFileLocation");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" access_hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_video_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) {
+    set_autocomplete_string ("access_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_encrypted_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_encrypted_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_encrypted_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; }
+  eprintf (" inputEncryptedFileLocation");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" access_hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_encrypted_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) {
+    set_autocomplete_string ("access_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_audio_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_audio_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_audio_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; }
+  eprintf (" inputAudioFileLocation");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" access_hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_audio_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) {
+    set_autocomplete_string ("access_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_document_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_document_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_document_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; }
+  eprintf (" inputDocumentFileLocation");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" access_hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_document_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe6daa38b && T->type->name != 0x19255c74)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) {
+    set_autocomplete_string ("access_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_geo_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x74d456fa && T->type->name != 0x8b2ba905)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_geo_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x74d456fa && T->type->name != 0x8b2ba905)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_geo_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x74d456fa && T->type->name != 0x8b2ba905)) { return -1; }
+  eprintf (" inputGeoChat");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chat_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" access_hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_geo_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x74d456fa && T->type->name != 0x8b2ba905)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) {
+    set_autocomplete_string ("chat_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) {
+    set_autocomplete_string ("access_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_geo_point_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return -1; }
+  return 0;
+}
+int store_constructor_input_geo_point_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_geo_point_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return -1; }
+  eprintf (" inputGeoPointEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_geo_point_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_geo_point (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_double (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_double (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_geo_point (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "lat", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_double (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "long", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_double (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_geo_point (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return -1; }
+  eprintf (" inputGeoPoint");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" lat :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_double (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" long :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_double (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_geo_point (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x17768f1f && T->type->name != 0xe88970e0)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "lat", cur_token_real_len)) {
+    set_autocomplete_string ("lat");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "lat", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_double (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "long", cur_token_real_len)) {
+    set_autocomplete_string ("long");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "long", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_double (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_media_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  return 0;
+}
+int store_constructor_input_media_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_media_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  eprintf (" inputMediaEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_media_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_media_uploaded_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_input_file (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_media_uploaded_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_file (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_media_uploaded_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  eprintf (" inputMediaUploadedPhoto");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" file :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_input_file (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_media_uploaded_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_real_len)) {
+    set_autocomplete_string ("file");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "file", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_file (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_media_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_input_photo (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_media_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_photo (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_media_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  eprintf (" inputMediaPhoto");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_input_photo (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_media_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_photo (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_media_geo_point (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_input_geo_point (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_media_geo_point (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "geo_point", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_geo_point (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_media_geo_point (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  eprintf (" inputMediaGeoPoint");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" geo_point :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_input_geo_point (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_media_geo_point (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "geo_point", cur_token_real_len)) {
+    set_autocomplete_string ("geo_point");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "geo_point", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_geo_point (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_media_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_media_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_media_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  eprintf (" inputMediaContact");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" phone_number :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" first_name :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" last_name :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_media_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_real_len)) {
+    set_autocomplete_string ("phone_number");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "phone_number", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_real_len)) {
+    set_autocomplete_string ("first_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_real_len)) {
+    set_autocomplete_string ("last_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_media_uploaded_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_input_file (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field5) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_media_uploaded_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_file (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field5) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_media_uploaded_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  eprintf (" inputMediaUploadedVideo");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" file :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_input_file (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" duration :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" w :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" h :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" mime_type :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_media_uploaded_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_real_len)) {
+    set_autocomplete_string ("file");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "file", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_file (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_real_len)) {
+    set_autocomplete_string ("duration");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "duration", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_real_len)) {
+    set_autocomplete_string ("w");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "w", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_real_len)) {
+    set_autocomplete_string ("h");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "h", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_real_len)) {
+    set_autocomplete_string ("mime_type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "mime_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field5) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_media_uploaded_thumb_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_input_file (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_input_file (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field6) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_media_uploaded_thumb_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_file (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_file (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field6) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_media_uploaded_thumb_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  eprintf (" inputMediaUploadedThumbVideo");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" file :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_input_file (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" thumb :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_input_file (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" duration :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" w :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" h :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" mime_type :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_media_uploaded_thumb_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_real_len)) {
+    set_autocomplete_string ("file");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "file", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_file (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_real_len)) {
+    set_autocomplete_string ("thumb");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "thumb", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_file (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_real_len)) {
+    set_autocomplete_string ("duration");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "duration", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_real_len)) {
+    set_autocomplete_string ("w");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "w", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_real_len)) {
+    set_autocomplete_string ("h");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "h", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_real_len)) {
+    set_autocomplete_string ("mime_type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "mime_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field6) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_media_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xbb5f7a27, .id = "InputVideo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_input_video (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_media_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xbb5f7a27, .id = "InputVideo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_video (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_media_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  eprintf (" inputMediaVideo");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xbb5f7a27, .id = "InputVideo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_input_video (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_media_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xbb5f7a27, .id = "InputVideo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_video (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_media_uploaded_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_input_file (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_media_uploaded_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_file (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_media_uploaded_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  eprintf (" inputMediaUploadedAudio");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" file :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_input_file (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" duration :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" mime_type :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_media_uploaded_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_real_len)) {
+    set_autocomplete_string ("file");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "file", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_file (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_real_len)) {
+    set_autocomplete_string ("duration");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "duration", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_real_len)) {
+    set_autocomplete_string ("mime_type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "mime_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_media_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xae8e9c7b, .id = "InputAudio", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_input_audio (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_media_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xae8e9c7b, .id = "InputAudio", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_audio (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_media_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  eprintf (" inputMediaAudio");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xae8e9c7b, .id = "InputAudio", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_input_audio (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_media_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xae8e9c7b, .id = "InputAudio", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_audio (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_media_uploaded_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_input_file (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xcfd59b04, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_media_uploaded_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_file (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "attributes", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xcfd59b04, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_media_uploaded_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  eprintf (" inputMediaUploadedDocument");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" file :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_input_file (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" mime_type :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" attributes :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xcfd59b04, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_media_uploaded_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_real_len)) {
+    set_autocomplete_string ("file");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "file", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_file (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_real_len)) {
+    set_autocomplete_string ("mime_type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "mime_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "attributes", cur_token_real_len)) {
+    set_autocomplete_string ("attributes");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "attributes", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xcfd59b04, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_media_uploaded_thumb_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_input_file (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_input_file (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xcfd59b04, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_media_uploaded_thumb_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_file (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_file (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "attributes", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xcfd59b04, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_media_uploaded_thumb_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  eprintf (" inputMediaUploadedThumbDocument");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" file :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_input_file (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" thumb :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_input_file (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" mime_type :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" attributes :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xcfd59b04, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_media_uploaded_thumb_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_real_len)) {
+    set_autocomplete_string ("file");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "file", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_file (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_real_len)) {
+    set_autocomplete_string ("thumb");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "thumb", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_file (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_real_len)) {
+    set_autocomplete_string ("mime_type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "mime_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "attributes", cur_token_real_len)) {
+    set_autocomplete_string ("attributes");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "attributes", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xcfd59b04, .id = "DocumentAttribute", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_media_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x6a8963fc, .id = "InputDocument", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_input_document (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_media_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x6a8963fc, .id = "InputDocument", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_document (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_media_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  eprintf (" inputMediaDocument");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x6a8963fc, .id = "InputDocument", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_input_document (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_media_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3670cf17 && T->type->name != 0xc98f30e8)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x6a8963fc, .id = "InputDocument", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_document (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_notify_peer (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_input_peer (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_notify_peer (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_peer (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_notify_peer (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; }
+  eprintf (" inputNotifyPeer");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" peer :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_input_peer (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_notify_peer (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_peer (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_notify_users (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; }
+  return 0;
+}
+int store_constructor_input_notify_users (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_notify_users (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; }
+  eprintf (" inputNotifyUsers");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_notify_users (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_notify_chats (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; }
+  return 0;
+}
+int store_constructor_input_notify_chats (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_notify_chats (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; }
+  eprintf (" inputNotifyChats");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_notify_chats (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_notify_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; }
+  return 0;
+}
+int store_constructor_input_notify_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_notify_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; }
+  eprintf (" inputNotifyAll");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_notify_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_notify_geo_chat_peer (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_input_geo_chat (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_notify_geo_chat_peer (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_geo_chat (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_notify_geo_chat_peer (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; }
+  eprintf (" inputNotifyGeoChatPeer");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" peer :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_input_geo_chat (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_notify_geo_chat_peer (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x02b6911b && T->type->name != 0xfd496ee4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_geo_chat (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_peer_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; }
+  return 0;
+}
+int store_constructor_input_peer_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_peer_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; }
+  eprintf (" inputPeerEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_peer_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_peer_self (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; }
+  return 0;
+}
+int store_constructor_input_peer_self (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_peer_self (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; }
+  eprintf (" inputPeerSelf");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_peer_self (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_peer_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_peer_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_peer_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; }
+  eprintf (" inputPeerContact");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_peer_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_peer_foreign (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_peer_foreign (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_peer_foreign (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; }
+  eprintf (" inputPeerForeign");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" access_hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_peer_foreign (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) {
+    set_autocomplete_string ("access_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_peer_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_peer_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_peer_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; }
+  eprintf (" inputPeerChat");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chat_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_peer_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9e67268d && T->type->name != 0x6198d972)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) {
+    set_autocomplete_string ("chat_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_peer_notify_events_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return -1; }
+  return 0;
+}
+int store_constructor_input_peer_notify_events_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_peer_notify_events_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return -1; }
+  eprintf (" inputPeerNotifyEventsEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_peer_notify_events_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_peer_notify_events_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return -1; }
+  return 0;
+}
+int store_constructor_input_peer_notify_events_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_peer_notify_events_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return -1; }
+  eprintf (" inputPeerNotifyEventsAll");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_peer_notify_events_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x185a48ac && T->type->name != 0xe7a5b753)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_peer_notify_settings (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x46a2ce98 && T->type->name != 0xb95d3167)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bool (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_peer_notify_settings (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x46a2ce98 && T->type->name != 0xb95d3167)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "mute_until", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "sound", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 13 && !cur_token_quoted && !memcmp (cur_token, "show_previews", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bool (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "events_mask", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_peer_notify_settings (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x46a2ce98 && T->type->name != 0xb95d3167)) { return -1; }
+  eprintf (" inputPeerNotifySettings");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" mute_until :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" sound :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" show_previews :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bool (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" events_mask :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_peer_notify_settings (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x46a2ce98 && T->type->name != 0xb95d3167)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "mute_until", cur_token_real_len)) {
+    set_autocomplete_string ("mute_until");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "mute_until", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "sound", cur_token_real_len)) {
+    set_autocomplete_string ("sound");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "sound", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 13 && !cur_token_quoted && !memcmp (cur_token, "show_previews", cur_token_real_len)) {
+    set_autocomplete_string ("show_previews");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 13 && !memcmp (cur_token, "show_previews", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bool (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "events_mask", cur_token_real_len)) {
+    set_autocomplete_string ("events_mask");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "events_mask", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_photo_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return -1; }
+  return 0;
+}
+int store_constructor_input_photo_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_photo_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return -1; }
+  eprintf (" inputPhotoEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_photo_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return -1; }
+  eprintf (" inputPhoto");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" access_hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe74279c9 && T->type->name != 0x18bd8636)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) {
+    set_autocomplete_string ("access_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_photo_crop_auto (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return -1; }
+  return 0;
+}
+int store_constructor_input_photo_crop_auto (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_photo_crop_auto (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return -1; }
+  eprintf (" inputPhotoCropAuto");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_photo_crop_auto (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_photo_crop (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_double (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_double (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_double (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_photo_crop (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "crop_left", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_double (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "crop_top", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_double (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "crop_width", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_double (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_photo_crop (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return -1; }
+  eprintf (" inputPhotoCrop");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" crop_left :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_double (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" crop_top :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_double (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" crop_width :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_double (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_photo_crop (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7477e321 && T->type->name != 0x8b881cde)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "crop_left", cur_token_real_len)) {
+    set_autocomplete_string ("crop_left");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "crop_left", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_double (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "crop_top", cur_token_real_len)) {
+    set_autocomplete_string ("crop_top");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "crop_top", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_double (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "crop_width", cur_token_real_len)) {
+    set_autocomplete_string ("crop_width");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "crop_width", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddef3eab, .id = "Bare_Double", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_double (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_privacy_key_status_timestamp (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4f96cb18 && T->type->name != 0xb06934e7)) { return -1; }
+  return 0;
+}
+int store_constructor_input_privacy_key_status_timestamp (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4f96cb18 && T->type->name != 0xb06934e7)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_privacy_key_status_timestamp (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4f96cb18 && T->type->name != 0xb06934e7)) { return -1; }
+  eprintf (" inputPrivacyKeyStatusTimestamp");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_privacy_key_status_timestamp (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4f96cb18 && T->type->name != 0xb06934e7)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_privacy_value_allow_contacts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; }
+  return 0;
+}
+int store_constructor_input_privacy_value_allow_contacts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_privacy_value_allow_contacts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; }
+  eprintf (" inputPrivacyValueAllowContacts");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_privacy_value_allow_contacts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_privacy_value_allow_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; }
+  return 0;
+}
+int store_constructor_input_privacy_value_allow_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_privacy_value_allow_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; }
+  eprintf (" inputPrivacyValueAllowAll");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_privacy_value_allow_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_privacy_value_allow_users (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_privacy_value_allow_users (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_privacy_value_allow_users (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; }
+  eprintf (" inputPrivacyValueAllowUsers");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_privacy_value_allow_users (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_privacy_value_disallow_contacts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; }
+  return 0;
+}
+int store_constructor_input_privacy_value_disallow_contacts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_privacy_value_disallow_contacts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; }
+  eprintf (" inputPrivacyValueDisallowContacts");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_privacy_value_disallow_contacts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_privacy_value_disallow_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; }
+  return 0;
+}
+int store_constructor_input_privacy_value_disallow_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_privacy_value_disallow_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; }
+  eprintf (" inputPrivacyValueDisallowAll");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_privacy_value_disallow_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_privacy_value_disallow_users (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_privacy_value_disallow_users (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_privacy_value_disallow_users (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; }
+  eprintf (" inputPrivacyValueDisallowUsers");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_privacy_value_disallow_users (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4b815163 && T->type->name != 0xb47eae9c)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_user_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; }
+  return 0;
+}
+int store_constructor_input_user_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_user_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; }
+  eprintf (" inputUserEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_user_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_user_self (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; }
+  return 0;
+}
+int store_constructor_input_user_self (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_user_self (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; }
+  eprintf (" inputUserSelf");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_user_self (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_user_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_user_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_user_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; }
+  eprintf (" inputUserContact");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_user_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_user_foreign (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_user_foreign (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_user_foreign (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; }
+  eprintf (" inputUserForeign");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" access_hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_user_foreign (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xadfe0c6a && T->type->name != 0x5201f395)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) {
+    set_autocomplete_string ("access_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_video_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return -1; }
+  return 0;
+}
+int store_constructor_input_video_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_video_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return -1; }
+  eprintf (" inputVideoEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_video_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_input_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_input_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return -1; }
+  eprintf (" inputVideo");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" access_hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xbb5f7a27 && T->type->name != 0x44a085d8)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) {
+    set_autocomplete_string ("access_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_int (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8509bda && T->type->name != 0x57af6425)) { return -1; }
+  if (in_remaining () < 4) { return -1;}
+  fetch_int ();
+  return 0;
+}
+int store_constructor_int (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8509bda && T->type->name != 0x57af6425)) { return -1; }
+  if (is_int ()) {
+    out_int (get_int ());
+    local_next_token ();
+    return 0;
+  } else {
+    return -1;
+  }
+}
+int fetch_constructor_int (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8509bda && T->type->name != 0x57af6425)) { return -1; }
+  if (in_remaining () < 4) { return -1;}
+  eprintf (" %d", fetch_int ());
+  return 0;
+}
+int autocomplete_constructor_int (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8509bda && T->type->name != 0x57af6425)) { return -1; }
+  if (is_int ()) {
+    local_next_token ();
+    return 0;
+  } else {
+    return -1;
+  }
+}
+int skip_constructor_int128 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7d36c439 && T->type->name != 0x82c93bc6)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_int128 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7d36c439 && T->type->name != 0x82c93bc6)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_int128 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7d36c439 && T->type->name != 0x82c93bc6)) { return -1; }
+  eprintf (" int128");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_int128 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7d36c439 && T->type->name != 0x82c93bc6)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_int256 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf2c798b3 && T->type->name != 0x0d38674c)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_int256 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf2c798b3 && T->type->name != 0x0d38674c)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_int256 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf2c798b3 && T->type->name != 0x0d38674c)) { return -1; }
+  eprintf (" int256");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_int256 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf2c798b3 && T->type->name != 0x0d38674c)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_long (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x22076cba && T->type->name != 0xddf89345)) { return -1; }
+  if (in_remaining () < 8) { return -1;}
+  fetch_long ();
+  return 0;
+}
+int store_constructor_long (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x22076cba && T->type->name != 0xddf89345)) { return -1; }
+  if (is_int ()) {
+    out_long (get_int ());
+    local_next_token ();
+    return 0;
+  } else {
+    return -1;
+  }
+}
+int fetch_constructor_long (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x22076cba && T->type->name != 0xddf89345)) { return -1; }
+  if (in_remaining () < 8) { return -1;}
+  eprintf (" %lld", fetch_long ());
+  return 0;
+}
+int autocomplete_constructor_long (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x22076cba && T->type->name != 0xddf89345)) { return -1; }
+  if (is_int ()) {
+    local_next_token ();
+    return 0;
+  } else {
+    return -1;
+  }
+}
+int skip_constructor_message_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6b7257ff && T->type->name != 0x948da800)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_message_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6b7257ff && T->type->name != 0x948da800)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_message_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6b7257ff && T->type->name != 0x948da800)) { return -1; }
+  eprintf (" messageEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_message_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6b7257ff && T->type->name != 0x948da800)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6b7257ff && T->type->name != 0x948da800)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_peer (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9f690be5, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_message_media (field7) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6b7257ff && T->type->name != 0x948da800)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_peer (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9f690be5, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_message_media (field7) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6b7257ff && T->type->name != 0x948da800)) { return -1; }
+  eprintf (" message");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" flags :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" from_id :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" to_id :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_peer (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" message :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" media :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9f690be5, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_message_media (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6b7257ff && T->type->name != 0x948da800)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) {
+    set_autocomplete_string ("flags");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_real_len)) {
+    set_autocomplete_string ("from_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_real_len)) {
+    set_autocomplete_string ("to_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_peer (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) {
+    set_autocomplete_string ("message");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_real_len)) {
+    set_autocomplete_string ("media");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "media", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9f690be5, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_message_media (field7) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_message_forwarded (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6b7257ff && T->type->name != 0x948da800)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_peer (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field7) < 0) { return -1;}
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field8) < 0) { return -1;}
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9f690be5, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_message_media (field9) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_message_forwarded (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6b7257ff && T->type->name != 0x948da800)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "fwd_from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "fwd_date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_peer (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field7) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field8) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9f690be5, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_message_media (field9) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_message_forwarded (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6b7257ff && T->type->name != 0x948da800)) { return -1; }
+  eprintf (" messageForwarded");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" flags :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" fwd_from_id :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" fwd_date :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" from_id :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" to_id :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_peer (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" message :"); }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field8) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" media :"); }
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9f690be5, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_message_media (field9) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_message_forwarded (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6b7257ff && T->type->name != 0x948da800)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) {
+    set_autocomplete_string ("flags");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "fwd_from_id", cur_token_real_len)) {
+    set_autocomplete_string ("fwd_from_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "fwd_from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "fwd_date", cur_token_real_len)) {
+    set_autocomplete_string ("fwd_date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "fwd_date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_real_len)) {
+    set_autocomplete_string ("from_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_real_len)) {
+    set_autocomplete_string ("to_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_peer (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field7) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) {
+    set_autocomplete_string ("message");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field8) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_real_len)) {
+    set_autocomplete_string ("media");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "media", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9f690be5, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_message_media (field9) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_message_service (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6b7257ff && T->type->name != 0x948da800)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_peer (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xc0a8e012, .id = "MessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_message_action (field6) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_message_service (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6b7257ff && T->type->name != 0x948da800)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_peer (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xc0a8e012, .id = "MessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_message_action (field6) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_message_service (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6b7257ff && T->type->name != 0x948da800)) { return -1; }
+  eprintf (" messageService");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" flags :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" from_id :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" to_id :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_peer (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" action :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xc0a8e012, .id = "MessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_message_action (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_message_service (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6b7257ff && T->type->name != 0x948da800)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) {
+    set_autocomplete_string ("flags");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_real_len)) {
+    set_autocomplete_string ("from_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_real_len)) {
+    set_autocomplete_string ("to_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_peer (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_real_len)) {
+    set_autocomplete_string ("action");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "action", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xc0a8e012, .id = "MessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_message_action (field6) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_message_action_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  return 0;
+}
+int store_constructor_message_action_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  return 0;
+}
+int fetch_constructor_message_action_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  eprintf (" messageActionEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_message_action_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  return 0;
+}
+int skip_constructor_message_action_chat_create (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_message_action_chat_create (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_message_action_chat_create (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  eprintf (" messageActionChatCreate");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" title :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_message_action_chat_create (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) {
+    set_autocomplete_string ("title");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_message_action_chat_edit_title (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_message_action_chat_edit_title (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_message_action_chat_edit_title (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  eprintf (" messageActionChatEditTitle");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" title :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_message_action_chat_edit_title (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) {
+    set_autocomplete_string ("title");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_message_action_chat_edit_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_photo (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_message_action_chat_edit_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_photo (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_message_action_chat_edit_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  eprintf (" messageActionChatEditPhoto");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" photo :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_photo (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_message_action_chat_edit_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) {
+    set_autocomplete_string ("photo");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_photo (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_message_action_chat_delete_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  return 0;
+}
+int store_constructor_message_action_chat_delete_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  return 0;
+}
+int fetch_constructor_message_action_chat_delete_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  eprintf (" messageActionChatDeletePhoto");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_message_action_chat_delete_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  return 0;
+}
+int skip_constructor_message_action_chat_add_user (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_message_action_chat_add_user (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_message_action_chat_add_user (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  eprintf (" messageActionChatAddUser");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_message_action_chat_add_user (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_message_action_chat_delete_user (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_message_action_chat_delete_user (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_message_action_chat_delete_user (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  eprintf (" messageActionChatDeleteUser");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_message_action_chat_delete_user (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_message_action_geo_chat_create (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_message_action_geo_chat_create (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "address", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_message_action_geo_chat_create (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  eprintf (" messageActionGeoChatCreate");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" title :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" address :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_message_action_geo_chat_create (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) {
+    set_autocomplete_string ("title");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "address", cur_token_real_len)) {
+    set_autocomplete_string ("address");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "address", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_message_action_geo_chat_checkin (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  return 0;
+}
+int store_constructor_message_action_geo_chat_checkin (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  return 0;
+}
+int fetch_constructor_message_action_geo_chat_checkin (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  eprintf (" messageActionGeoChatCheckin");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_message_action_geo_chat_checkin (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0a8e012 && T->type->name != 0x3f571fed)) { return -1; }
+  return 0;
+}
+int skip_constructor_message_media_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  return 0;
+}
+int store_constructor_message_media_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  return 0;
+}
+int fetch_constructor_message_media_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  eprintf (" messageMediaEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_message_media_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  return 0;
+}
+int skip_constructor_message_media_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_photo (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_message_media_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_photo (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_message_media_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  eprintf (" messageMediaPhoto");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" photo :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_photo (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_message_media_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) {
+    set_autocomplete_string ("photo");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_photo (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_message_media_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf989fb39, .id = "Video", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_video (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_message_media_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "video", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf989fb39, .id = "Video", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_video (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_message_media_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  eprintf (" messageMediaVideo");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" video :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf989fb39, .id = "Video", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_video (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_message_media_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "video", cur_token_real_len)) {
+    set_autocomplete_string ("video");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "video", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf989fb39, .id = "Video", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_video (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_message_media_geo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_geo_point (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_message_media_geo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "geo", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_geo_point (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_message_media_geo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  eprintf (" messageMediaGeo");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" geo :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_geo_point (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_message_media_geo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "geo", cur_token_real_len)) {
+    set_autocomplete_string ("geo");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "geo", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_geo_point (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_message_media_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_message_media_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_message_media_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  eprintf (" messageMediaContact");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" phone_number :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" first_name :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" last_name :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_message_media_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_real_len)) {
+    set_autocomplete_string ("phone_number");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "phone_number", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_real_len)) {
+    set_autocomplete_string ("first_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_real_len)) {
+    set_autocomplete_string ("last_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_message_media_unsupported (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_message_media_unsupported (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_message_media_unsupported (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  eprintf (" messageMediaUnsupported");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" bytes :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_message_media_unsupported (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_real_len)) {
+    set_autocomplete_string ("bytes");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "bytes", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_message_media_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_document (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_message_media_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "document", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_document (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_message_media_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  eprintf (" messageMediaDocument");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" document :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_document (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_message_media_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "document", cur_token_real_len)) {
+    set_autocomplete_string ("document");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "document", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_document (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_message_media_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9fc5ec4e, .id = "Audio", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_audio (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_message_media_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "audio", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9fc5ec4e, .id = "Audio", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_audio (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_message_media_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  eprintf (" messageMediaAudio");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" audio :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9fc5ec4e, .id = "Audio", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_audio (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_message_media_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9f690be5 && T->type->name != 0x6096f41a)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "audio", cur_token_real_len)) {
+    set_autocomplete_string ("audio");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "audio", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9fc5ec4e, .id = "Audio", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_audio (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_input_messages_filter_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x59d7295b && T->type->name != 0xa628d6a4)) { return -1; }
+  return 0;
+}
+int store_constructor_input_messages_filter_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x59d7295b && T->type->name != 0xa628d6a4)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_messages_filter_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x59d7295b && T->type->name != 0xa628d6a4)) { return -1; }
+  eprintf (" inputMessagesFilterEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_messages_filter_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x59d7295b && T->type->name != 0xa628d6a4)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_messages_filter_photos (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x59d7295b && T->type->name != 0xa628d6a4)) { return -1; }
+  return 0;
+}
+int store_constructor_input_messages_filter_photos (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x59d7295b && T->type->name != 0xa628d6a4)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_messages_filter_photos (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x59d7295b && T->type->name != 0xa628d6a4)) { return -1; }
+  eprintf (" inputMessagesFilterPhotos");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_messages_filter_photos (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x59d7295b && T->type->name != 0xa628d6a4)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_messages_filter_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x59d7295b && T->type->name != 0xa628d6a4)) { return -1; }
+  return 0;
+}
+int store_constructor_input_messages_filter_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x59d7295b && T->type->name != 0xa628d6a4)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_messages_filter_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x59d7295b && T->type->name != 0xa628d6a4)) { return -1; }
+  eprintf (" inputMessagesFilterVideo");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_messages_filter_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x59d7295b && T->type->name != 0xa628d6a4)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_messages_filter_photo_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x59d7295b && T->type->name != 0xa628d6a4)) { return -1; }
+  return 0;
+}
+int store_constructor_input_messages_filter_photo_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x59d7295b && T->type->name != 0xa628d6a4)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_messages_filter_photo_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x59d7295b && T->type->name != 0xa628d6a4)) { return -1; }
+  eprintf (" inputMessagesFilterPhotoVideo");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_messages_filter_photo_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x59d7295b && T->type->name != 0xa628d6a4)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_messages_filter_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x59d7295b && T->type->name != 0xa628d6a4)) { return -1; }
+  return 0;
+}
+int store_constructor_input_messages_filter_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x59d7295b && T->type->name != 0xa628d6a4)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_messages_filter_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x59d7295b && T->type->name != 0xa628d6a4)) { return -1; }
+  eprintf (" inputMessagesFilterDocument");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_messages_filter_document (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x59d7295b && T->type->name != 0xa628d6a4)) { return -1; }
+  return 0;
+}
+int skip_constructor_input_messages_filter_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x59d7295b && T->type->name != 0xa628d6a4)) { return -1; }
+  return 0;
+}
+int store_constructor_input_messages_filter_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x59d7295b && T->type->name != 0xa628d6a4)) { return -1; }
+  return 0;
+}
+int fetch_constructor_input_messages_filter_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x59d7295b && T->type->name != 0xa628d6a4)) { return -1; }
+  eprintf (" inputMessagesFilterAudio");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_input_messages_filter_audio (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x59d7295b && T->type->name != 0xa628d6a4)) { return -1; }
+  return 0;
+}
+int skip_constructor_nearest_dc (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x8e1a1775 && T->type->name != 0x71e5e88a)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_nearest_dc (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x8e1a1775 && T->type->name != 0x71e5e88a)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "country", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "this_dc", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "nearest_dc", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_nearest_dc (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x8e1a1775 && T->type->name != 0x71e5e88a)) { return -1; }
+  eprintf (" nearestDc");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" country :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" this_dc :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" nearest_dc :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_nearest_dc (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x8e1a1775 && T->type->name != 0x71e5e88a)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "country", cur_token_real_len)) {
+    set_autocomplete_string ("country");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "country", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "this_dc", cur_token_real_len)) {
+    set_autocomplete_string ("this_dc");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "this_dc", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "nearest_dc", cur_token_real_len)) {
+    set_autocomplete_string ("nearest_dc");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "nearest_dc", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_notify_peer (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_peer (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_notify_peer (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_peer (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_notify_peer (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; }
+  eprintf (" notifyPeer");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" peer :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_peer (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_notify_peer (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x276159d6, .id = "Peer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_peer (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_notify_users (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; }
+  return 0;
+}
+int store_constructor_notify_users (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; }
+  return 0;
+}
+int fetch_constructor_notify_users (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; }
+  eprintf (" notifyUsers");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_notify_users (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; }
+  return 0;
+}
+int skip_constructor_notify_chats (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; }
+  return 0;
+}
+int store_constructor_notify_chats (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; }
+  return 0;
+}
+int fetch_constructor_notify_chats (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; }
+  eprintf (" notifyChats");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_notify_chats (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; }
+  return 0;
+}
+int skip_constructor_notify_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; }
+  return 0;
+}
+int store_constructor_notify_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; }
+  return 0;
+}
+int fetch_constructor_notify_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; }
+  eprintf (" notifyAll");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_notify_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9fcb8237 && T->type->name != 0x60347dc8)) { return -1; }
+  return 0;
+}
+int skip_constructor_null (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x56730bcc && T->type->name != 0xa98cf433)) { return -1; }
+  return 0;
+}
+int store_constructor_null (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x56730bcc && T->type->name != 0xa98cf433)) { return -1; }
+  return 0;
+}
+int fetch_constructor_null (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x56730bcc && T->type->name != 0xa98cf433)) { return -1; }
+  eprintf (" null");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_null (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x56730bcc && T->type->name != 0xa98cf433)) { return -1; }
+  return 0;
+}
+int skip_constructor_p_q_inner_data (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int128 (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int128 (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0d38674c, .id = "Bare_Int256", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int256 (field6) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_p_q_inner_data (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "pq", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "p", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "q", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "new_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0d38674c, .id = "Bare_Int256", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int256 (field6) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_p_q_inner_data (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return -1; }
+  eprintf (" p_q_inner_data");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" pq :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" p :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" q :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" nonce :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int128 (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" server_nonce :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int128 (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" new_nonce :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0d38674c, .id = "Bare_Int256", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int256 (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_p_q_inner_data (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "pq", cur_token_real_len)) {
+    set_autocomplete_string ("pq");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "pq", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "p", cur_token_real_len)) {
+    set_autocomplete_string ("p");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "p", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "q", cur_token_real_len)) {
+    set_autocomplete_string ("q");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "q", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) {
+    set_autocomplete_string ("nonce");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_real_len)) {
+    set_autocomplete_string ("server_nonce");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "server_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "new_nonce", cur_token_real_len)) {
+    set_autocomplete_string ("new_nonce");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "new_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0d38674c, .id = "Bare_Int256", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int256 (field6) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_p_q_inner_data_temp (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int128 (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int128 (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0d38674c, .id = "Bare_Int256", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int256 (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field7) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_p_q_inner_data_temp (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "pq", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "p", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "q", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "new_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0d38674c, .id = "Bare_Int256", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int256 (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "expires_in", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field7) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_p_q_inner_data_temp (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return -1; }
+  eprintf (" p_q_inner_data_temp");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" pq :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" p :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" q :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" nonce :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int128 (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" server_nonce :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int128 (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" new_nonce :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0d38674c, .id = "Bare_Int256", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int256 (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" expires_in :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_p_q_inner_data_temp (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xbfa3de38 && T->type->name != 0x405c21c7)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "pq", cur_token_real_len)) {
+    set_autocomplete_string ("pq");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "pq", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "p", cur_token_real_len)) {
+    set_autocomplete_string ("p");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "p", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "q", cur_token_real_len)) {
+    set_autocomplete_string ("q");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "q", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) {
+    set_autocomplete_string ("nonce");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_real_len)) {
+    set_autocomplete_string ("server_nonce");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "server_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "new_nonce", cur_token_real_len)) {
+    set_autocomplete_string ("new_nonce");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "new_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0d38674c, .id = "Bare_Int256", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int256 (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "expires_in", cur_token_real_len)) {
+    set_autocomplete_string ("expires_in");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "expires_in", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field7) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_peer_user (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_peer_user (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_peer_user (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return -1; }
+  eprintf (" peerUser");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_peer_user (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_peer_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_peer_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_peer_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return -1; }
+  eprintf (" peerChat");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chat_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_peer_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x276159d6 && T->type->name != 0xd89ea629)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) {
+    set_autocomplete_string ("chat_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_peer_notify_events_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return -1; }
+  return 0;
+}
+int store_constructor_peer_notify_events_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return -1; }
+  return 0;
+}
+int fetch_constructor_peer_notify_events_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return -1; }
+  eprintf (" peerNotifyEventsEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_peer_notify_events_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return -1; }
+  return 0;
+}
+int skip_constructor_peer_notify_events_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return -1; }
+  return 0;
+}
+int store_constructor_peer_notify_events_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return -1; }
+  return 0;
+}
+int fetch_constructor_peer_notify_events_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return -1; }
+  eprintf (" peerNotifyEventsAll");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_peer_notify_events_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0c8d13b && T->type->name != 0x3f372ec4)) { return -1; }
+  return 0;
+}
+int skip_constructor_peer_notify_settings_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return -1; }
+  return 0;
+}
+int store_constructor_peer_notify_settings_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return -1; }
+  return 0;
+}
+int fetch_constructor_peer_notify_settings_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return -1; }
+  eprintf (" peerNotifySettingsEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_peer_notify_settings_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return -1; }
+  return 0;
+}
+int skip_constructor_peer_notify_settings (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bool (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_peer_notify_settings (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "mute_until", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "sound", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 13 && !cur_token_quoted && !memcmp (cur_token, "show_previews", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bool (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "events_mask", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_peer_notify_settings (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return -1; }
+  eprintf (" peerNotifySettings");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" mute_until :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" sound :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" show_previews :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bool (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" events_mask :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_peer_notify_settings (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xfdf894fc && T->type->name != 0x02076b03)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "mute_until", cur_token_real_len)) {
+    set_autocomplete_string ("mute_until");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "mute_until", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "sound", cur_token_real_len)) {
+    set_autocomplete_string ("sound");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "sound", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 13 && !cur_token_quoted && !memcmp (cur_token, "show_previews", cur_token_real_len)) {
+    set_autocomplete_string ("show_previews");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 13 && !memcmp (cur_token, "show_previews", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bool (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "events_mask", cur_token_real_len)) {
+    set_autocomplete_string ("events_mask");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "events_mask", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_photo_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0184d57c && T->type->name != 0xfe7b2a83)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_photo_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0184d57c && T->type->name != 0xfe7b2a83)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_photo_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0184d57c && T->type->name != 0xfe7b2a83)) { return -1; }
+  eprintf (" photoEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_photo_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0184d57c && T->type->name != 0xfe7b2a83)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0184d57c && T->type->name != 0xfe7b2a83)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_geo_point (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field7) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0184d57c && T->type->name != 0xfe7b2a83)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "caption", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "geo", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_geo_point (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "sizes", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field7) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0184d57c && T->type->name != 0xfe7b2a83)) { return -1; }
+  eprintf (" photo");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" access_hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" caption :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" geo :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_geo_point (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" sizes :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0184d57c && T->type->name != 0xfe7b2a83)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) {
+    set_autocomplete_string ("access_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "caption", cur_token_real_len)) {
+    set_autocomplete_string ("caption");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "caption", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "geo", cur_token_real_len)) {
+    set_autocomplete_string ("geo");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "geo", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x315e0a53, .id = "GeoPoint", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_geo_point (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "sizes", cur_token_real_len)) {
+    set_autocomplete_string ("sizes");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "sizes", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field7) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_photo_size_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_photo_size_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_photo_size_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; }
+  eprintf (" photoSizeEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" type :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_photo_size_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "type", cur_token_real_len)) {
+    set_autocomplete_string ("type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_photo_size (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_file_location (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_photo_size (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "location", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_file_location (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_photo_size (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; }
+  eprintf (" photoSize");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" type :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" location :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_file_location (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" w :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" h :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" size :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_photo_size (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "type", cur_token_real_len)) {
+    set_autocomplete_string ("type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "location", cur_token_real_len)) {
+    set_autocomplete_string ("location");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "location", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_file_location (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_real_len)) {
+    set_autocomplete_string ("w");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "w", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_real_len)) {
+    set_autocomplete_string ("h");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "h", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_real_len)) {
+    set_autocomplete_string ("size");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "size", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_photo_cached_size (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_file_location (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field5) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_photo_cached_size (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "location", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_file_location (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field5) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_photo_cached_size (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; }
+  eprintf (" photoCachedSize");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" type :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" location :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_file_location (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" w :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" h :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" bytes :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_photo_cached_size (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x900f60dd && T->type->name != 0x6ff09f22)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "type", cur_token_real_len)) {
+    set_autocomplete_string ("type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "location", cur_token_real_len)) {
+    set_autocomplete_string ("location");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "location", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_file_location (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_real_len)) {
+    set_autocomplete_string ("w");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "w", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_real_len)) {
+    set_autocomplete_string ("h");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "h", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_real_len)) {
+    set_autocomplete_string ("bytes");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "bytes", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field5) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_privacy_key_status_timestamp (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xbc2eab30 && T->type->name != 0x43d154cf)) { return -1; }
+  return 0;
+}
+int store_constructor_privacy_key_status_timestamp (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xbc2eab30 && T->type->name != 0x43d154cf)) { return -1; }
+  return 0;
+}
+int fetch_constructor_privacy_key_status_timestamp (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xbc2eab30 && T->type->name != 0x43d154cf)) { return -1; }
+  eprintf (" privacyKeyStatusTimestamp");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_privacy_key_status_timestamp (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xbc2eab30 && T->type->name != 0x43d154cf)) { return -1; }
+  return 0;
+}
+int skip_constructor_privacy_value_allow_contacts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; }
+  return 0;
+}
+int store_constructor_privacy_value_allow_contacts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; }
+  return 0;
+}
+int fetch_constructor_privacy_value_allow_contacts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; }
+  eprintf (" privacyValueAllowContacts");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_privacy_value_allow_contacts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; }
+  return 0;
+}
+int skip_constructor_privacy_value_allow_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; }
+  return 0;
+}
+int store_constructor_privacy_value_allow_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; }
+  return 0;
+}
+int fetch_constructor_privacy_value_allow_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; }
+  eprintf (" privacyValueAllowAll");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_privacy_value_allow_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; }
+  return 0;
+}
+int skip_constructor_privacy_value_allow_users (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_privacy_value_allow_users (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_privacy_value_allow_users (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; }
+  eprintf (" privacyValueAllowUsers");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_privacy_value_allow_users (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_privacy_value_disallow_contacts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; }
+  return 0;
+}
+int store_constructor_privacy_value_disallow_contacts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; }
+  return 0;
+}
+int fetch_constructor_privacy_value_disallow_contacts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; }
+  eprintf (" privacyValueDisallowContacts");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_privacy_value_disallow_contacts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; }
+  return 0;
+}
+int skip_constructor_privacy_value_disallow_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; }
+  return 0;
+}
+int store_constructor_privacy_value_disallow_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; }
+  return 0;
+}
+int fetch_constructor_privacy_value_disallow_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; }
+  eprintf (" privacyValueDisallowAll");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_privacy_value_disallow_all (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; }
+  return 0;
+}
+int skip_constructor_privacy_value_disallow_users (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_privacy_value_disallow_users (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_privacy_value_disallow_users (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; }
+  eprintf (" privacyValueDisallowUsers");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_privacy_value_disallow_users (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8638aec && T->type->name != 0x579c7513)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_res_p_q (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x05162463 && T->type->name != 0xfae9db9c)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int128 (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int128 (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_res_p_q (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x05162463 && T->type->name != 0xfae9db9c)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "pq", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 30 && !cur_token_quoted && !memcmp (cur_token, "server_public_key_fingerprints", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_res_p_q (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x05162463 && T->type->name != 0xfae9db9c)) { return -1; }
+  eprintf (" resPQ");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" nonce :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int128 (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" server_nonce :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int128 (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" pq :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" server_public_key_fingerprints :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_res_p_q (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x05162463 && T->type->name != 0xfae9db9c)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) {
+    set_autocomplete_string ("nonce");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_real_len)) {
+    set_autocomplete_string ("server_nonce");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "server_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "pq", cur_token_real_len)) {
+    set_autocomplete_string ("pq");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "pq", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 30 && !cur_token_quoted && !memcmp (cur_token, "server_public_key_fingerprints", cur_token_real_len)) {
+    set_autocomplete_string ("server_public_key_fingerprints");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 30 && !memcmp (cur_token, "server_public_key_fingerprints", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_send_message_typing_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int store_constructor_send_message_typing_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int fetch_constructor_send_message_typing_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  eprintf (" sendMessageTypingAction");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_send_message_typing_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int skip_constructor_send_message_cancel_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int store_constructor_send_message_cancel_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int fetch_constructor_send_message_cancel_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  eprintf (" sendMessageCancelAction");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_send_message_cancel_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int skip_constructor_send_message_record_video_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int store_constructor_send_message_record_video_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int fetch_constructor_send_message_record_video_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  eprintf (" sendMessageRecordVideoAction");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_send_message_record_video_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int skip_constructor_send_message_upload_video_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int store_constructor_send_message_upload_video_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int fetch_constructor_send_message_upload_video_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  eprintf (" sendMessageUploadVideoAction");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_send_message_upload_video_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int skip_constructor_send_message_record_audio_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int store_constructor_send_message_record_audio_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int fetch_constructor_send_message_record_audio_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  eprintf (" sendMessageRecordAudioAction");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_send_message_record_audio_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int skip_constructor_send_message_upload_audio_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int store_constructor_send_message_upload_audio_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int fetch_constructor_send_message_upload_audio_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  eprintf (" sendMessageUploadAudioAction");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_send_message_upload_audio_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int skip_constructor_send_message_upload_photo_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int store_constructor_send_message_upload_photo_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int fetch_constructor_send_message_upload_photo_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  eprintf (" sendMessageUploadPhotoAction");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_send_message_upload_photo_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int skip_constructor_send_message_upload_document_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int store_constructor_send_message_upload_document_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int fetch_constructor_send_message_upload_document_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  eprintf (" sendMessageUploadDocumentAction");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_send_message_upload_document_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int skip_constructor_send_message_geo_location_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int store_constructor_send_message_geo_location_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int fetch_constructor_send_message_geo_location_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  eprintf (" sendMessageGeoLocationAction");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_send_message_geo_location_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int skip_constructor_send_message_choose_contact_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int store_constructor_send_message_choose_contact_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int fetch_constructor_send_message_choose_contact_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  eprintf (" sendMessageChooseContactAction");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_send_message_choose_contact_action (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x88a65ee1 && T->type->name != 0x7759a11e)) { return -1; }
+  return 0;
+}
+int skip_constructor_server_d_h_params_fail (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int128 (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int128 (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int128 (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_server_d_h_params_fail (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "new_nonce_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_server_d_h_params_fail (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return -1; }
+  eprintf (" server_DH_params_fail");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" nonce :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int128 (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" server_nonce :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int128 (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" new_nonce_hash :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int128 (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_server_d_h_params_fail (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) {
+    set_autocomplete_string ("nonce");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_real_len)) {
+    set_autocomplete_string ("server_nonce");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "server_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "new_nonce_hash", cur_token_real_len)) {
+    set_autocomplete_string ("new_nonce_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "new_nonce_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_server_d_h_params_ok (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int128 (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int128 (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_server_d_h_params_ok (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 16 && !cur_token_quoted && !memcmp (cur_token, "encrypted_answer", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_server_d_h_params_ok (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return -1; }
+  eprintf (" server_DH_params_ok");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" nonce :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int128 (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" server_nonce :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int128 (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" encrypted_answer :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_server_d_h_params_ok (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa9230301 && T->type->name != 0x56dcfcfe)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) {
+    set_autocomplete_string ("nonce");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_real_len)) {
+    set_autocomplete_string ("server_nonce");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "server_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 16 && !cur_token_quoted && !memcmp (cur_token, "encrypted_answer", cur_token_real_len)) {
+    set_autocomplete_string ("encrypted_answer");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 16 && !memcmp (cur_token, "encrypted_answer", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_server_d_h_inner_data (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb5890dba && T->type->name != 0x4a76f245)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int128 (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int128 (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field6) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_server_d_h_inner_data (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb5890dba && T->type->name != 0x4a76f245)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "g", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "dh_prime", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "g_a", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "server_time", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field6) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_server_d_h_inner_data (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb5890dba && T->type->name != 0x4a76f245)) { return -1; }
+  eprintf (" server_DH_inner_data");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" nonce :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int128 (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" server_nonce :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int128 (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" g :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" dh_prime :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" g_a :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" server_time :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_server_d_h_inner_data (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb5890dba && T->type->name != 0x4a76f245)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) {
+    set_autocomplete_string ("nonce");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_real_len)) {
+    set_autocomplete_string ("server_nonce");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "server_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "g", cur_token_real_len)) {
+    set_autocomplete_string ("g");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "g", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "dh_prime", cur_token_real_len)) {
+    set_autocomplete_string ("dh_prime");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "dh_prime", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "g_a", cur_token_real_len)) {
+    set_autocomplete_string ("g_a");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "g_a", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "server_time", cur_token_real_len)) {
+    set_autocomplete_string ("server_time");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "server_time", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field6) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_dh_gen_ok (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int128 (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int128 (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int128 (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_dh_gen_ok (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "new_nonce_hash1", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_dh_gen_ok (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; }
+  eprintf (" dh_gen_ok");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" nonce :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int128 (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" server_nonce :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int128 (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" new_nonce_hash1 :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int128 (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_dh_gen_ok (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) {
+    set_autocomplete_string ("nonce");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_real_len)) {
+    set_autocomplete_string ("server_nonce");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "server_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "new_nonce_hash1", cur_token_real_len)) {
+    set_autocomplete_string ("new_nonce_hash1");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "new_nonce_hash1", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_dh_gen_retry (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int128 (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int128 (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int128 (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_dh_gen_retry (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "new_nonce_hash2", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_dh_gen_retry (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; }
+  eprintf (" dh_gen_retry");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" nonce :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int128 (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" server_nonce :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int128 (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" new_nonce_hash2 :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int128 (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_dh_gen_retry (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) {
+    set_autocomplete_string ("nonce");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_real_len)) {
+    set_autocomplete_string ("server_nonce");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "server_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "new_nonce_hash2", cur_token_real_len)) {
+    set_autocomplete_string ("new_nonce_hash2");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "new_nonce_hash2", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_dh_gen_fail (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int128 (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int128 (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int128 (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_dh_gen_fail (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "new_nonce_hash3", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_dh_gen_fail (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; }
+  eprintf (" dh_gen_fail");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" nonce :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int128 (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" server_nonce :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int128 (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" new_nonce_hash3 :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int128 (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_dh_gen_fail (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xdb8a468f && T->type->name != 0x2475b970)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) {
+    set_autocomplete_string ("nonce");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_real_len)) {
+    set_autocomplete_string ("server_nonce");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "server_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "new_nonce_hash3", cur_token_real_len)) {
+    set_autocomplete_string ("new_nonce_hash3");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "new_nonce_hash3", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_sticker_pack (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x12b299d4 && T->type->name != 0xed4d662b)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_sticker_pack (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x12b299d4 && T->type->name != 0xed4d662b)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "emoticon", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "documents", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_sticker_pack (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x12b299d4 && T->type->name != 0xed4d662b)) { return -1; }
+  eprintf (" stickerPack");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" emoticon :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" documents :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_sticker_pack (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x12b299d4 && T->type->name != 0xed4d662b)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "emoticon", cur_token_real_len)) {
+    set_autocomplete_string ("emoticon");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "emoticon", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "documents", cur_token_real_len)) {
+    set_autocomplete_string ("documents");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "documents", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_string (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb5286e24 && T->type->name != 0x4ad791db)) { return -1; }
+  int l = prefetch_strlen ();
+  if (l < 0) { return -1;}
+  fetch_str (l);
+  return 0;
+}
+int store_constructor_string (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb5286e24 && T->type->name != 0x4ad791db)) { return -1; }
+  if (cur_token_len >= 0) {
+    out_cstring (cur_token, cur_token_len);
+    local_next_token ();
+    return 0;
+  } else {
+    return -1;
+  }
+}
+int fetch_constructor_string (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb5286e24 && T->type->name != 0x4ad791db)) { return -1; }
+  char buf[1 << 22];
+  int l = prefetch_strlen ();
+  if (l < 0 || (l >= (1 << 22) - 2)) { return -1; }
+  memcpy (buf, fetch_str (l), l);
+  buf[l] = 0;
+  print_escaped_string (buf, l);
+  return 0;
+}
+int autocomplete_constructor_string (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb5286e24 && T->type->name != 0x4ad791db)) { return -1; }
+  if (cur_token_len >= 0) {
+    local_next_token ();
+    return 0;
+  } else {
+    return -1;
+  }
+}
+int skip_constructor_update_new_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_message (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_new_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_message (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_new_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateNewMessage");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" message :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_message (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" pts :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_new_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) {
+    set_autocomplete_string ("message");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_message (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) {
+    set_autocomplete_string ("pts");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_message_i_d (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_message_i_d (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_message_i_d (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateMessageID");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" random_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_message_i_d (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) {
+    set_autocomplete_string ("random_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_read_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_read_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_read_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateReadMessages");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" messages :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" pts :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_read_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_real_len)) {
+    set_autocomplete_string ("messages");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "messages", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) {
+    set_autocomplete_string ("pts");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_delete_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_delete_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_delete_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateDeleteMessages");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" messages :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" pts :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_delete_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_real_len)) {
+    set_autocomplete_string ("messages");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "messages", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) {
+    set_autocomplete_string ("pts");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_restore_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_restore_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_restore_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateRestoreMessages");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" messages :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" pts :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_restore_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_real_len)) {
+    set_autocomplete_string ("messages");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "messages", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) {
+    set_autocomplete_string ("pts");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_user_typing (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x88a65ee1, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_send_message_action (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_user_typing (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x88a65ee1, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_send_message_action (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_user_typing (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateUserTyping");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" action :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x88a65ee1, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_send_message_action (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_user_typing (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_real_len)) {
+    set_autocomplete_string ("action");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "action", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x88a65ee1, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_send_message_action (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_chat_user_typing (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x88a65ee1, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_send_message_action (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_chat_user_typing (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x88a65ee1, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_send_message_action (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_chat_user_typing (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateChatUserTyping");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chat_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" action :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x88a65ee1, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_send_message_action (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_chat_user_typing (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) {
+    set_autocomplete_string ("chat_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_real_len)) {
+    set_autocomplete_string ("action");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "action", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x88a65ee1, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_send_message_action (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_chat_participants (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_chat_participants (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_chat_participants (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "participants", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_chat_participants (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_chat_participants (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateChatParticipants");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" participants :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_chat_participants (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_chat_participants (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "participants", cur_token_real_len)) {
+    set_autocomplete_string ("participants");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "participants", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x77930f9f, .id = "ChatParticipants", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_chat_participants (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_user_status (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_user_status (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_user_status (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "status", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_user_status (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_user_status (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateUserStatus");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" status :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_user_status (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_user_status (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "status", cur_token_real_len)) {
+    set_autocomplete_string ("status");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "status", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_user_status (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_user_name (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_user_name (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_user_name (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateUserName");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" first_name :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" last_name :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" username :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_user_name (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_real_len)) {
+    set_autocomplete_string ("first_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_real_len)) {
+    set_autocomplete_string ("last_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_real_len)) {
+    set_autocomplete_string ("username");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "username", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_user_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_user_profile_photo (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bool (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_user_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_user_profile_photo (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "previous", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bool (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_user_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateUserPhoto");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" photo :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_user_profile_photo (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" previous :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bool (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_user_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) {
+    set_autocomplete_string ("photo");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_user_profile_photo (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "previous", cur_token_real_len)) {
+    set_autocomplete_string ("previous");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "previous", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bool (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_contact_registered (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_contact_registered (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_contact_registered (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateContactRegistered");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_contact_registered (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_contact_link (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7c031857, .id = "contacts.MyLink", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_contacts_my_link (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xaf5eb25e, .id = "contacts.ForeignLink", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_contacts_foreign_link (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_contact_link (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "my_link", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7c031857, .id = "contacts.MyLink", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_contacts_my_link (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "foreign_link", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xaf5eb25e, .id = "contacts.ForeignLink", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_contacts_foreign_link (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_contact_link (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateContactLink");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" my_link :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7c031857, .id = "contacts.MyLink", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_contacts_my_link (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" foreign_link :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xaf5eb25e, .id = "contacts.ForeignLink", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_contacts_foreign_link (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_contact_link (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "my_link", cur_token_real_len)) {
+    set_autocomplete_string ("my_link");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "my_link", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7c031857, .id = "contacts.MyLink", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_contacts_my_link (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "foreign_link", cur_token_real_len)) {
+    set_autocomplete_string ("foreign_link");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "foreign_link", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xaf5eb25e, .id = "contacts.ForeignLink", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_contacts_foreign_link (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_activation (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_activation (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_activation (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateActivation");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_activation (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_new_authorization (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_new_authorization (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "auth_key_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "device", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "location", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_new_authorization (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateNewAuthorization");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" auth_key_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" device :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" location :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_new_authorization (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "auth_key_id", cur_token_real_len)) {
+    set_autocomplete_string ("auth_key_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "auth_key_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "device", cur_token_real_len)) {
+    set_autocomplete_string ("device");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "device", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "location", cur_token_real_len)) {
+    set_autocomplete_string ("location");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "location", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_new_geo_chat_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_geo_chat_message (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_new_geo_chat_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_geo_chat_message (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_new_geo_chat_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateNewGeoChatMessage");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" message :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_geo_chat_message (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_new_geo_chat_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) {
+    set_autocomplete_string ("message");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_geo_chat_message (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_new_encrypted_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_encrypted_message (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_new_encrypted_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_encrypted_message (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "qts", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_new_encrypted_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateNewEncryptedMessage");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" message :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_encrypted_message (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" qts :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_new_encrypted_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) {
+    set_autocomplete_string ("message");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_encrypted_message (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "qts", cur_token_real_len)) {
+    set_autocomplete_string ("qts");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "qts", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_encrypted_chat_typing (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_encrypted_chat_typing (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_encrypted_chat_typing (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateEncryptedChatTyping");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chat_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_encrypted_chat_typing (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) {
+    set_autocomplete_string ("chat_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_encryption (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xb1718213, .id = "EncryptedChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_encrypted_chat (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_encryption (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "chat", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xb1718213, .id = "EncryptedChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_encrypted_chat (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_encryption (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateEncryption");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chat :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xb1718213, .id = "EncryptedChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_encrypted_chat (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_encryption (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "chat", cur_token_real_len)) {
+    set_autocomplete_string ("chat");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "chat", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xb1718213, .id = "EncryptedChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_encrypted_chat (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_encrypted_messages_read (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_encrypted_messages_read (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "max_date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_encrypted_messages_read (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateEncryptedMessagesRead");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chat_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" max_date :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_encrypted_messages_read (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) {
+    set_autocomplete_string ("chat_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "max_date", cur_token_real_len)) {
+    set_autocomplete_string ("max_date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "max_date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_chat_participant_add (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_chat_participant_add (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "inviter_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_chat_participant_add (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateChatParticipantAdd");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chat_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" inviter_id :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" version :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_chat_participant_add (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) {
+    set_autocomplete_string ("chat_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "inviter_id", cur_token_real_len)) {
+    set_autocomplete_string ("inviter_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "inviter_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_real_len)) {
+    set_autocomplete_string ("version");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "version", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_chat_participant_delete (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_chat_participant_delete (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_chat_participant_delete (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateChatParticipantDelete");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chat_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" version :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_chat_participant_delete (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) {
+    set_autocomplete_string ("chat_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_real_len)) {
+    set_autocomplete_string ("version");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "version", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_dc_options (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x2ec2a43c, .id = "DcOption", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_dc_options (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "dc_options", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x2ec2a43c, .id = "DcOption", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_dc_options (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateDcOptions");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" dc_options :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x2ec2a43c, .id = "DcOption", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_dc_options (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "dc_options", cur_token_real_len)) {
+    set_autocomplete_string ("dc_options");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "dc_options", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x2ec2a43c, .id = "DcOption", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_user_blocked (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bool (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_user_blocked (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "blocked", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bool (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_user_blocked (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateUserBlocked");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" blocked :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bool (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_user_blocked (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "blocked", cur_token_real_len)) {
+    set_autocomplete_string ("blocked");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "blocked", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bool (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_notify_settings (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9fcb8237, .id = "NotifyPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_notify_peer (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_peer_notify_settings (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_notify_settings (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9fcb8237, .id = "NotifyPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_notify_peer (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "notify_settings", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_peer_notify_settings (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_notify_settings (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateNotifySettings");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" peer :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9fcb8237, .id = "NotifyPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_notify_peer (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" notify_settings :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_peer_notify_settings (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_notify_settings (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9fcb8237, .id = "NotifyPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_notify_peer (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "notify_settings", cur_token_real_len)) {
+    set_autocomplete_string ("notify_settings");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "notify_settings", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_peer_notify_settings (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_service_notification (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9f690be5, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_message_media (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bool (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_service_notification (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9f690be5, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_message_media (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "popup", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bool (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_service_notification (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateServiceNotification");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" type :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" message :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" media :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9f690be5, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_message_media (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" popup :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bool (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_service_notification (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "type", cur_token_real_len)) {
+    set_autocomplete_string ("type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) {
+    set_autocomplete_string ("message");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_real_len)) {
+    set_autocomplete_string ("media");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "media", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9f690be5, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_message_media (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "popup", cur_token_real_len)) {
+    set_autocomplete_string ("popup");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "popup", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bool (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_privacy (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xbc2eab30, .id = "PrivacyKey", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_privacy_key (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xa8638aec, .id = "PrivacyRule", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_privacy (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xbc2eab30, .id = "PrivacyKey", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_privacy_key (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "rules", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xa8638aec, .id = "PrivacyRule", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_privacy (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updatePrivacy");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" key :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xbc2eab30, .id = "PrivacyKey", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_privacy_key (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" rules :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xa8638aec, .id = "PrivacyRule", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_privacy (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) {
+    set_autocomplete_string ("key");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xbc2eab30, .id = "PrivacyKey", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_privacy_key (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "rules", cur_token_real_len)) {
+    set_autocomplete_string ("rules");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "rules", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xa8638aec, .id = "PrivacyRule", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_user_phone (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_user_phone (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "phone", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_user_phone (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  eprintf (" updateUserPhone");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" phone :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_user_phone (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7eb21a2b && T->type->name != 0x814de5d4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "phone", cur_token_real_len)) {
+    set_autocomplete_string ("phone");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "phone", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_updates_too_long (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x65edddf6 && T->type->name != 0x9a122209)) { return -1; }
+  return 0;
+}
+int store_constructor_updates_too_long (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x65edddf6 && T->type->name != 0x9a122209)) { return -1; }
+  return 0;
+}
+int fetch_constructor_updates_too_long (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x65edddf6 && T->type->name != 0x9a122209)) { return -1; }
+  eprintf (" updatesTooLong");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_updates_too_long (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x65edddf6 && T->type->name != 0x9a122209)) { return -1; }
+  return 0;
+}
+int skip_constructor_update_short_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x65edddf6 && T->type->name != 0x9a122209)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field6) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_short_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x65edddf6 && T->type->name != 0x9a122209)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field6) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_short_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x65edddf6 && T->type->name != 0x9a122209)) { return -1; }
+  eprintf (" updateShortMessage");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" from_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" message :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" pts :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" seq :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_short_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x65edddf6 && T->type->name != 0x9a122209)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_real_len)) {
+    set_autocomplete_string ("from_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) {
+    set_autocomplete_string ("message");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) {
+    set_autocomplete_string ("pts");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_real_len)) {
+    set_autocomplete_string ("seq");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field6) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_short_chat_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x65edddf6 && T->type->name != 0x9a122209)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field7) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_short_chat_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x65edddf6 && T->type->name != 0x9a122209)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field7) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_short_chat_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x65edddf6 && T->type->name != 0x9a122209)) { return -1; }
+  eprintf (" updateShortChatMessage");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" from_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chat_id :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" message :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" pts :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" seq :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_short_chat_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x65edddf6 && T->type->name != 0x9a122209)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_real_len)) {
+    set_autocomplete_string ("from_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) {
+    set_autocomplete_string ("chat_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) {
+    set_autocomplete_string ("message");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) {
+    set_autocomplete_string ("pts");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_real_len)) {
+    set_autocomplete_string ("seq");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field7) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_update_short (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x65edddf6 && T->type->name != 0x9a122209)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7eb21a2b, .id = "Update", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_update (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_update_short (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x65edddf6 && T->type->name != 0x9a122209)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "update", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7eb21a2b, .id = "Update", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_update (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_update_short (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x65edddf6 && T->type->name != 0x9a122209)) { return -1; }
+  eprintf (" updateShort");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" update :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7eb21a2b, .id = "Update", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_update (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_update_short (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x65edddf6 && T->type->name != 0x9a122209)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "update", cur_token_real_len)) {
+    set_autocomplete_string ("update");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "update", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7eb21a2b, .id = "Update", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_update (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_updates_combined (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x65edddf6 && T->type->name != 0x9a122209)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7eb21a2b, .id = "Update", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field6) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_updates_combined (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x65edddf6 && T->type->name != 0x9a122209)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "updates", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7eb21a2b, .id = "Update", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "seq_start", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field6) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_updates_combined (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x65edddf6 && T->type->name != 0x9a122209)) { return -1; }
+  eprintf (" updatesCombined");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" updates :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7eb21a2b, .id = "Update", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chats :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" seq_start :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" seq :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_updates_combined (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x65edddf6 && T->type->name != 0x9a122209)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "updates", cur_token_real_len)) {
+    set_autocomplete_string ("updates");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "updates", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7eb21a2b, .id = "Update", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) {
+    set_autocomplete_string ("chats");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "seq_start", cur_token_real_len)) {
+    set_autocomplete_string ("seq_start");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "seq_start", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_real_len)) {
+    set_autocomplete_string ("seq");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field6) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_updates (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x65edddf6 && T->type->name != 0x9a122209)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7eb21a2b, .id = "Update", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_updates (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x65edddf6 && T->type->name != 0x9a122209)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "updates", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7eb21a2b, .id = "Update", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_updates (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x65edddf6 && T->type->name != 0x9a122209)) { return -1; }
+  eprintf (" updates");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" updates :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7eb21a2b, .id = "Update", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chats :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" seq :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_updates (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x65edddf6 && T->type->name != 0x9a122209)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "updates", cur_token_real_len)) {
+    set_autocomplete_string ("updates");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "updates", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7eb21a2b, .id = "Update", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) {
+    set_autocomplete_string ("chats");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_real_len)) {
+    set_autocomplete_string ("seq");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_user_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9227e4ce && T->type->name != 0x6dd81b31)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_user_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9227e4ce && T->type->name != 0x6dd81b31)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_user_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9227e4ce && T->type->name != 0x6dd81b31)) { return -1; }
+  eprintf (" userEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_user_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9227e4ce && T->type->name != 0x6dd81b31)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_user_self (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9227e4ce && T->type->name != 0x6dd81b31)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_user_profile_photo (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_user_status (field7) < 0) { return -1;}
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bool (field8) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_user_self (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9227e4ce && T->type->name != 0x6dd81b31)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "phone", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_user_profile_photo (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "status", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_user_status (field7) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "inactive", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bool (field8) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_user_self (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9227e4ce && T->type->name != 0x6dd81b31)) { return -1; }
+  eprintf (" userSelf");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" first_name :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" last_name :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" username :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" phone :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" photo :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_user_profile_photo (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" status :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_user_status (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" inactive :"); }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bool (field8) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_user_self (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9227e4ce && T->type->name != 0x6dd81b31)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_real_len)) {
+    set_autocomplete_string ("first_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_real_len)) {
+    set_autocomplete_string ("last_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_real_len)) {
+    set_autocomplete_string ("username");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "username", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "phone", cur_token_real_len)) {
+    set_autocomplete_string ("phone");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "phone", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) {
+    set_autocomplete_string ("photo");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_user_profile_photo (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "status", cur_token_real_len)) {
+    set_autocomplete_string ("status");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "status", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_user_status (field7) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "inactive", cur_token_real_len)) {
+    set_autocomplete_string ("inactive");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "inactive", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bool (field8) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_user_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9227e4ce && T->type->name != 0x6dd81b31)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_user_profile_photo (field7) < 0) { return -1;}
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_user_status (field8) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_user_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9227e4ce && T->type->name != 0x6dd81b31)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "phone", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_user_profile_photo (field7) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "status", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_user_status (field8) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_user_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9227e4ce && T->type->name != 0x6dd81b31)) { return -1; }
+  eprintf (" userContact");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" first_name :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" last_name :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" username :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" access_hash :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" phone :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" photo :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_user_profile_photo (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" status :"); }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_user_status (field8) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_user_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9227e4ce && T->type->name != 0x6dd81b31)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_real_len)) {
+    set_autocomplete_string ("first_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_real_len)) {
+    set_autocomplete_string ("last_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_real_len)) {
+    set_autocomplete_string ("username");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "username", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) {
+    set_autocomplete_string ("access_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "phone", cur_token_real_len)) {
+    set_autocomplete_string ("phone");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "phone", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) {
+    set_autocomplete_string ("photo");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_user_profile_photo (field7) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "status", cur_token_real_len)) {
+    set_autocomplete_string ("status");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "status", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_user_status (field8) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_user_request (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9227e4ce && T->type->name != 0x6dd81b31)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_user_profile_photo (field7) < 0) { return -1;}
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_user_status (field8) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_user_request (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9227e4ce && T->type->name != 0x6dd81b31)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "phone", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_user_profile_photo (field7) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "status", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_user_status (field8) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_user_request (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9227e4ce && T->type->name != 0x6dd81b31)) { return -1; }
+  eprintf (" userRequest");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" first_name :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" last_name :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" username :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" access_hash :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" phone :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" photo :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_user_profile_photo (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" status :"); }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_user_status (field8) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_user_request (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9227e4ce && T->type->name != 0x6dd81b31)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_real_len)) {
+    set_autocomplete_string ("first_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_real_len)) {
+    set_autocomplete_string ("last_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_real_len)) {
+    set_autocomplete_string ("username");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "username", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) {
+    set_autocomplete_string ("access_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "phone", cur_token_real_len)) {
+    set_autocomplete_string ("phone");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "phone", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) {
+    set_autocomplete_string ("photo");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_user_profile_photo (field7) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "status", cur_token_real_len)) {
+    set_autocomplete_string ("status");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "status", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_user_status (field8) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_user_foreign (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9227e4ce && T->type->name != 0x6dd81b31)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_user_profile_photo (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_user_status (field7) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_user_foreign (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9227e4ce && T->type->name != 0x6dd81b31)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_user_profile_photo (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "status", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_user_status (field7) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_user_foreign (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9227e4ce && T->type->name != 0x6dd81b31)) { return -1; }
+  eprintf (" userForeign");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" first_name :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" last_name :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" username :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" access_hash :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" photo :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_user_profile_photo (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" status :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_user_status (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_user_foreign (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9227e4ce && T->type->name != 0x6dd81b31)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_real_len)) {
+    set_autocomplete_string ("first_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_real_len)) {
+    set_autocomplete_string ("last_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_real_len)) {
+    set_autocomplete_string ("username");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "username", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) {
+    set_autocomplete_string ("access_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) {
+    set_autocomplete_string ("photo");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_user_profile_photo (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "status", cur_token_real_len)) {
+    set_autocomplete_string ("status");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "status", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x76de9570, .id = "UserStatus", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_user_status (field7) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_user_deleted (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9227e4ce && T->type->name != 0x6dd81b31)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_user_deleted (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9227e4ce && T->type->name != 0x6dd81b31)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_user_deleted (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9227e4ce && T->type->name != 0x6dd81b31)) { return -1; }
+  eprintf (" userDeleted");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" first_name :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" last_name :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" username :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_user_deleted (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9227e4ce && T->type->name != 0x6dd81b31)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_real_len)) {
+    set_autocomplete_string ("first_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_real_len)) {
+    set_autocomplete_string ("last_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_real_len)) {
+    set_autocomplete_string ("username");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "username", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_user_full (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x771095da && T->type->name != 0x88ef6a25)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_user (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xeccea3f5, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_contacts_link (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_photo (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_peer_notify_settings (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bool (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field7) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_user_full (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x771095da && T->type->name != 0x88ef6a25)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "user", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_user (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "link", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xeccea3f5, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_contacts_link (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 13 && !cur_token_quoted && !memcmp (cur_token, "profile_photo", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_photo (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "notify_settings", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_peer_notify_settings (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "blocked", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bool (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "real_first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "real_last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field7) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_user_full (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x771095da && T->type->name != 0x88ef6a25)) { return -1; }
+  eprintf (" userFull");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_user (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" link :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xeccea3f5, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_contacts_link (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" profile_photo :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_photo (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" notify_settings :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_peer_notify_settings (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" blocked :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bool (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" real_first_name :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" real_last_name :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_user_full (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x771095da && T->type->name != 0x88ef6a25)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "user", cur_token_real_len)) {
+    set_autocomplete_string ("user");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "user", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_user (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "link", cur_token_real_len)) {
+    set_autocomplete_string ("link");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "link", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xeccea3f5, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_contacts_link (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 13 && !cur_token_quoted && !memcmp (cur_token, "profile_photo", cur_token_real_len)) {
+    set_autocomplete_string ("profile_photo");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 13 && !memcmp (cur_token, "profile_photo", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_photo (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "notify_settings", cur_token_real_len)) {
+    set_autocomplete_string ("notify_settings");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "notify_settings", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_peer_notify_settings (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "blocked", cur_token_real_len)) {
+    set_autocomplete_string ("blocked");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "blocked", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bool (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "real_first_name", cur_token_real_len)) {
+    set_autocomplete_string ("real_first_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "real_first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "real_last_name", cur_token_real_len)) {
+    set_autocomplete_string ("real_last_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "real_last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field7) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_user_profile_photo_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return -1; }
+  return 0;
+}
+int store_constructor_user_profile_photo_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return -1; }
+  return 0;
+}
+int fetch_constructor_user_profile_photo_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return -1; }
+  eprintf (" userProfilePhotoEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_user_profile_photo_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return -1; }
+  return 0;
+}
+int skip_constructor_user_profile_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_file_location (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_file_location (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_user_profile_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "photo_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "photo_small", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_file_location (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "photo_big", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_file_location (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_user_profile_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return -1; }
+  eprintf (" userProfilePhoto");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" photo_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" photo_small :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_file_location (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" photo_big :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_file_location (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_user_profile_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x9a486229 && T->type->name != 0x65b79dd6)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "photo_id", cur_token_real_len)) {
+    set_autocomplete_string ("photo_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "photo_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "photo_small", cur_token_real_len)) {
+    set_autocomplete_string ("photo_small");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "photo_small", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_file_location (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "photo_big", cur_token_real_len)) {
+    set_autocomplete_string ("photo_big");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "photo_big", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x2f8ffb30, .id = "FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_file_location (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_user_status_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; }
+  return 0;
+}
+int store_constructor_user_status_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; }
+  return 0;
+}
+int fetch_constructor_user_status_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; }
+  eprintf (" userStatusEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_user_status_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; }
+  return 0;
+}
+int skip_constructor_user_status_online (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_user_status_online (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "expires", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_user_status_online (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; }
+  eprintf (" userStatusOnline");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" expires :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_user_status_online (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "expires", cur_token_real_len)) {
+    set_autocomplete_string ("expires");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "expires", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_user_status_offline (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_user_status_offline (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "was_online", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_user_status_offline (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; }
+  eprintf (" userStatusOffline");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" was_online :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_user_status_offline (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "was_online", cur_token_real_len)) {
+    set_autocomplete_string ("was_online");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "was_online", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_user_status_recently (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; }
+  return 0;
+}
+int store_constructor_user_status_recently (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; }
+  return 0;
+}
+int fetch_constructor_user_status_recently (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; }
+  eprintf (" userStatusRecently");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_user_status_recently (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; }
+  return 0;
+}
+int skip_constructor_user_status_last_week (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; }
+  return 0;
+}
+int store_constructor_user_status_last_week (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; }
+  return 0;
+}
+int fetch_constructor_user_status_last_week (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; }
+  eprintf (" userStatusLastWeek");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_user_status_last_week (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; }
+  return 0;
+}
+int skip_constructor_user_status_last_month (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; }
+  return 0;
+}
+int store_constructor_user_status_last_month (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; }
+  return 0;
+}
+int fetch_constructor_user_status_last_month (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; }
+  eprintf (" userStatusLastMonth");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_user_status_last_month (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x76de9570 && T->type->name != 0x89216a8f)) { return -1; }
+  return 0;
+}
+int skip_constructor_vector (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x1cb5c415 && T->type->name != 0xe34a3bea)) { return -1; }
+  if (ODDP(T->params[0])) { return -1; }
+  struct paramed_type *var0 = T->params[0]; assert (var0);
+  if (in_remaining () < 4) { return -1;}
+  struct paramed_type *var1 = INT2PTR (fetch_int ());
+  int multiplicity3 = PTR2INT (
+  ((void *)var1) + 0  );
+  struct paramed_type *field3 =
+  var0;
+  while (multiplicity3 -- > 0) {
+    if (skip_type_any (field3) < 0) { return -1;}
+  }
+  return 0;
+}
+int store_constructor_vector (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x1cb5c415 && T->type->name != 0xe34a3bea)) { return -1; }
+  if (ODDP(T->params[0])) { return -1; }
+  struct paramed_type *var0 = T->params[0]; assert (var0);
+  if (cur_token_len < 0) { return -1; }
+  if (!is_int ()) { return -1;}
+  struct paramed_type *var1 = INT2PTR (get_int ());
+  out_int (get_int ());
+  assert (var1);
+  local_next_token ();
+  expect_token ("[", 1);
+  int multiplicity3 = PTR2INT (
+  ((void *)var1) + 0  );
+  struct paramed_type *field3 =
+  var0;
+  while (multiplicity3 -- > 0) {
+    if (store_type_any (field3) < 0) { return -1;}
+  }
+  expect_token ("]", 1);
+  return 0;
+}
+int fetch_constructor_vector (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x1cb5c415 && T->type->name != 0xe34a3bea)) { return -1; }
+  if (ODDP(T->params[0])) { return -1; }
+  struct paramed_type *var0 = T->params[0]; assert (var0);
+  eprintf (" vector");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (in_remaining () < 4) { return -1;}
+  eprintf (" %d", prefetch_int ());
+  struct paramed_type *var1 = INT2PTR (fetch_int ());
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  int multiplicity3 = PTR2INT (
+  ((void *)var1) + 0  );
+  struct paramed_type *field3 =
+  var0;
+  eprintf (" [");
+  if (multiline_output >= 1) { eprintf ("\n"); }
+  if (multiline_output >= 1) { multiline_offset += multiline_offset_size;}
+  while (multiplicity3 -- > 0) {
+    if (multiline_output >= 1) { print_offset (); }
+    if (fetch_type_any (field3) < 0) { return -1;}
+    if (multiline_output >= 1) { eprintf ("\n"); }
+  }
+  if (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();}
+  eprintf (" ]");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_vector (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x1cb5c415 && T->type->name != 0xe34a3bea)) { return -1; }
+  if (ODDP(T->params[0])) { return -1; }
+  struct paramed_type *var0 = T->params[0]; assert (var0);
+  if (cur_token_len < 0) { return -1; }
+  if (!is_int ()) { return -1;}
+  struct paramed_type *var1 = INT2PTR (get_int ());
+  assert (var1);
+  local_next_token ();
+  expect_token_autocomplete ("[", 1);
+  int multiplicity3 = PTR2INT (
+  ((void *)var1) + 0  );
+  struct paramed_type *field3 =
+  var0;
+  while (multiplicity3 -- > 0) {
+    if (autocomplete_type_any (field3) < 0) { return -1;}
+  }
+  expect_token_autocomplete ("]", 1);
+  return 0;
+}
+int skip_constructor_video_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf989fb39 && T->type->name != 0x067604c6)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_video_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf989fb39 && T->type->name != 0x067604c6)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_video_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf989fb39 && T->type->name != 0x067604c6)) { return -1; }
+  eprintf (" videoEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_video_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf989fb39 && T->type->name != 0x067604c6)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf989fb39 && T->type->name != 0x067604c6)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field7) < 0) { return -1;}
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field8) < 0) { return -1;}
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_photo_size (field9) < 0) { return -1;}
+  struct paramed_type *field10 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field10) < 0) { return -1;}
+  struct paramed_type *field11 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field11) < 0) { return -1;}
+  struct paramed_type *field12 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field12) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf989fb39 && T->type->name != 0x067604c6)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "caption", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field7) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field8) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_photo_size (field9) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field10 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field10) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field11 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field11) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field12 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field12) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf989fb39 && T->type->name != 0x067604c6)) { return -1; }
+  eprintf (" video");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" access_hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" caption :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" duration :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" mime_type :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" size :"); }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field8) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" thumb :"); }
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_photo_size (field9) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" dc_id :"); }
+  struct paramed_type *field10 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field10) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" w :"); }
+  struct paramed_type *field11 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field11) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" h :"); }
+  struct paramed_type *field12 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field12) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_video (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf989fb39 && T->type->name != 0x067604c6)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "access_hash", cur_token_real_len)) {
+    set_autocomplete_string ("access_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "access_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "caption", cur_token_real_len)) {
+    set_autocomplete_string ("caption");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "caption", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_real_len)) {
+    set_autocomplete_string ("duration");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "duration", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "mime_type", cur_token_real_len)) {
+    set_autocomplete_string ("mime_type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "mime_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field7) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_real_len)) {
+    set_autocomplete_string ("size");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "size", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field8) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_real_len)) {
+    set_autocomplete_string ("thumb");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "thumb", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_photo_size (field9) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_real_len)) {
+    set_autocomplete_string ("dc_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "dc_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field10 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field10) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_real_len)) {
+    set_autocomplete_string ("w");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "w", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field11 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field11) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_real_len)) {
+    set_autocomplete_string ("h");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "h", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field12 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field12) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_wall_paper (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_wall_paper (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "sizes", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "color", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_wall_paper (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return -1; }
+  eprintf (" wallPaper");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" title :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" sizes :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" color :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_wall_paper (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) {
+    set_autocomplete_string ("title");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "sizes", cur_token_real_len)) {
+    set_autocomplete_string ("sizes");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "sizes", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x900f60dd, .id = "PhotoSize", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "color", cur_token_real_len)) {
+    set_autocomplete_string ("color");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "color", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_wall_paper_solid (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_wall_paper_solid (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "bg_color", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "color", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_wall_paper_solid (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return -1; }
+  eprintf (" wallPaperSolid");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" title :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" bg_color :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" color :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_wall_paper_solid (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xafa14973 && T->type->name != 0x505eb68c)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) {
+    set_autocomplete_string ("title");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "bg_color", cur_token_real_len)) {
+    set_autocomplete_string ("bg_color");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "bg_color", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "color", cur_token_real_len)) {
+    set_autocomplete_string ("color");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "color", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_account_no_password (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x24eeb8db && T->type->name != 0xdb114724)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_account_no_password (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x24eeb8db && T->type->name != 0xdb114724)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "new_salt", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_account_no_password (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x24eeb8db && T->type->name != 0xdb114724)) { return -1; }
+  eprintf (" account.noPassword");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" new_salt :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_account_no_password (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x24eeb8db && T->type->name != 0xdb114724)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "new_salt", cur_token_real_len)) {
+    set_autocomplete_string ("new_salt");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "new_salt", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_account_password (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x24eeb8db && T->type->name != 0xdb114724)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_account_password (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x24eeb8db && T->type->name != 0xdb114724)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "current_salt", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "new_salt", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "hint", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_account_password (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x24eeb8db && T->type->name != 0xdb114724)) { return -1; }
+  eprintf (" account.password");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" current_salt :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" new_salt :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" hint :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_account_password (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x24eeb8db && T->type->name != 0xdb114724)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "current_salt", cur_token_real_len)) {
+    set_autocomplete_string ("current_salt");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "current_salt", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "new_salt", cur_token_real_len)) {
+    set_autocomplete_string ("new_salt");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "new_salt", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "hint", cur_token_real_len)) {
+    set_autocomplete_string ("hint");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "hint", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_account_privacy_rules (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x554abb6f && T->type->name != 0xaab54490)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xa8638aec, .id = "PrivacyRule", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_account_privacy_rules (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x554abb6f && T->type->name != 0xaab54490)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "rules", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xa8638aec, .id = "PrivacyRule", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_account_privacy_rules (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x554abb6f && T->type->name != 0xaab54490)) { return -1; }
+  eprintf (" account.privacyRules");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" rules :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xa8638aec, .id = "PrivacyRule", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_account_privacy_rules (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x554abb6f && T->type->name != 0xaab54490)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "rules", cur_token_real_len)) {
+    set_autocomplete_string ("rules");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "rules", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xa8638aec, .id = "PrivacyRule", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_account_sent_change_phone_code (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa4f58c4c && T->type->name != 0x5b0a73b3)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_account_sent_change_phone_code (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa4f58c4c && T->type->name != 0x5b0a73b3)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 17 && !cur_token_quoted && !memcmp (cur_token, "send_call_timeout", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_account_sent_change_phone_code (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa4f58c4c && T->type->name != 0x5b0a73b3)) { return -1; }
+  eprintf (" account.sentChangePhoneCode");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" phone_code_hash :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" send_call_timeout :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_account_sent_change_phone_code (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa4f58c4c && T->type->name != 0x5b0a73b3)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_real_len)) {
+    set_autocomplete_string ("phone_code_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "phone_code_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 17 && !cur_token_quoted && !memcmp (cur_token, "send_call_timeout", cur_token_real_len)) {
+    set_autocomplete_string ("send_call_timeout");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 17 && !memcmp (cur_token, "send_call_timeout", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_auth_authorization (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf6b673a4 && T->type->name != 0x09498c5b)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_user (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_auth_authorization (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf6b673a4 && T->type->name != 0x09498c5b)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "expires", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "user", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_user (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_auth_authorization (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf6b673a4 && T->type->name != 0x09498c5b)) { return -1; }
+  eprintf (" auth.authorization");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" expires :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_user (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_auth_authorization (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf6b673a4 && T->type->name != 0x09498c5b)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "expires", cur_token_real_len)) {
+    set_autocomplete_string ("expires");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "expires", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "user", cur_token_real_len)) {
+    set_autocomplete_string ("user");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "user", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_user (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_auth_checked_phone (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe300cc3b && T->type->name != 0x1cff33c4)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bool (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bool (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_auth_checked_phone (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe300cc3b && T->type->name != 0x1cff33c4)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 16 && !cur_token_quoted && !memcmp (cur_token, "phone_registered", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bool (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 13 && !cur_token_quoted && !memcmp (cur_token, "phone_invited", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bool (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_auth_checked_phone (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe300cc3b && T->type->name != 0x1cff33c4)) { return -1; }
+  eprintf (" auth.checkedPhone");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" phone_registered :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bool (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" phone_invited :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bool (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_auth_checked_phone (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe300cc3b && T->type->name != 0x1cff33c4)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 16 && !cur_token_quoted && !memcmp (cur_token, "phone_registered", cur_token_real_len)) {
+    set_autocomplete_string ("phone_registered");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 16 && !memcmp (cur_token, "phone_registered", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bool (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 13 && !cur_token_quoted && !memcmp (cur_token, "phone_invited", cur_token_real_len)) {
+    set_autocomplete_string ("phone_invited");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 13 && !memcmp (cur_token, "phone_invited", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bool (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_auth_exported_authorization (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xdf969c2d && T->type->name != 0x206963d2)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_auth_exported_authorization (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xdf969c2d && T->type->name != 0x206963d2)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_auth_exported_authorization (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xdf969c2d && T->type->name != 0x206963d2)) { return -1; }
+  eprintf (" auth.exportedAuthorization");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" bytes :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_auth_exported_authorization (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xdf969c2d && T->type->name != 0x206963d2)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_real_len)) {
+    set_autocomplete_string ("bytes");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "bytes", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_auth_sent_code (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bool (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bool (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_auth_sent_code (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 16 && !cur_token_quoted && !memcmp (cur_token, "phone_registered", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bool (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 17 && !cur_token_quoted && !memcmp (cur_token, "send_call_timeout", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "is_password", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bool (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_auth_sent_code (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return -1; }
+  eprintf (" auth.sentCode");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" phone_registered :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bool (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" phone_code_hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" send_call_timeout :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" is_password :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bool (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_auth_sent_code (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 16 && !cur_token_quoted && !memcmp (cur_token, "phone_registered", cur_token_real_len)) {
+    set_autocomplete_string ("phone_registered");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 16 && !memcmp (cur_token, "phone_registered", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bool (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_real_len)) {
+    set_autocomplete_string ("phone_code_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "phone_code_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 17 && !cur_token_quoted && !memcmp (cur_token, "send_call_timeout", cur_token_real_len)) {
+    set_autocomplete_string ("send_call_timeout");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 17 && !memcmp (cur_token, "send_call_timeout", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "is_password", cur_token_real_len)) {
+    set_autocomplete_string ("is_password");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "is_password", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bool (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_auth_sent_app_code (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bool (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bool (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_auth_sent_app_code (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 16 && !cur_token_quoted && !memcmp (cur_token, "phone_registered", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bool (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 17 && !cur_token_quoted && !memcmp (cur_token, "send_call_timeout", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "is_password", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bool (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_auth_sent_app_code (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return -1; }
+  eprintf (" auth.sentAppCode");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" phone_registered :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bool (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" phone_code_hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" send_call_timeout :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" is_password :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bool (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_auth_sent_app_code (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0cc8bc16 && T->type->name != 0xf33743e9)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 16 && !cur_token_quoted && !memcmp (cur_token, "phone_registered", cur_token_real_len)) {
+    set_autocomplete_string ("phone_registered");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 16 && !memcmp (cur_token, "phone_registered", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bool (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_real_len)) {
+    set_autocomplete_string ("phone_code_hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "phone_code_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 17 && !cur_token_quoted && !memcmp (cur_token, "send_call_timeout", cur_token_real_len)) {
+    set_autocomplete_string ("send_call_timeout");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 17 && !memcmp (cur_token, "send_call_timeout", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "is_password", cur_token_real_len)) {
+    set_autocomplete_string ("is_password");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "is_password", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bool (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_chat_participant (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe97ad32a && T->type->name != 0x16852cd5)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_chat_participant (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe97ad32a && T->type->name != 0x16852cd5)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "user", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "inviter", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_chat_participant (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe97ad32a && T->type->name != 0x16852cd5)) { return -1; }
+  eprintf (" binlog.chatParticipant");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" inviter :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_chat_participant (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe97ad32a && T->type->name != 0x16852cd5)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "user", cur_token_real_len)) {
+    set_autocomplete_string ("user");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "user", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "inviter", cur_token_real_len)) {
+    set_autocomplete_string ("inviter");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "inviter", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xae7ae5ce && T->type->name != 0x51851a31)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xae7ae5ce && T->type->name != 0x51851a31)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "dc", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "volume", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "local_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "secret", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xae7ae5ce && T->type->name != 0x51851a31)) { return -1; }
+  eprintf (" binlog.fileLocation");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" dc :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" volume :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" local_id :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" secret :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_file_location (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xae7ae5ce && T->type->name != 0x51851a31)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "dc", cur_token_real_len)) {
+    set_autocomplete_string ("dc");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "dc", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "volume", cur_token_real_len)) {
+    set_autocomplete_string ("volume");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "volume", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "local_id", cur_token_real_len)) {
+    set_autocomplete_string ("local_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "local_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "secret", cur_token_real_len)) {
+    set_autocomplete_string ("secret");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "secret", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_start (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  return 0;
+}
+int store_constructor_binlog_start (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  return 0;
+}
+int fetch_constructor_binlog_start (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.start");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_start (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  return 0;
+}
+int skip_constructor_binlog_dc_option (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_dc_option (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "ip", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "port", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_dc_option (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.dcOption");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" name :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" ip :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" port :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_dc_option (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "name", cur_token_real_len)) {
+    set_autocomplete_string ("name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "ip", cur_token_real_len)) {
+    set_autocomplete_string ("ip");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "ip", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "port", cur_token_real_len)) {
+    set_autocomplete_string ("port");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "port", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_auth_key (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  int multiplicity3 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity3 -- > 0) {
+    if (skip_type_any (field3) < 0) { return -1;}
+  }
+  return 0;
+}
+int store_constructor_binlog_auth_key (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "dc", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "key_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  expect_token ("[", 1);
+  int multiplicity3 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity3 -- > 0) {
+    if (store_type_any (field3) < 0) { return -1;}
+  }
+  expect_token ("]", 1);
+  return 0;
+}
+int fetch_constructor_binlog_auth_key (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.authKey");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" dc :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" key_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" key :"); }
+  int multiplicity3 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  eprintf (" [");
+  if (multiline_output >= 1) { eprintf ("\n"); }
+  if (multiline_output >= 1) { multiline_offset += multiline_offset_size;}
+  while (multiplicity3 -- > 0) {
+    if (multiline_output >= 1) { print_offset (); }
+    if (fetch_type_any (field3) < 0) { return -1;}
+    if (multiline_output >= 1) { eprintf ("\n"); }
+  }
+  if (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();}
+  eprintf (" ]");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_auth_key (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "dc", cur_token_real_len)) {
+    set_autocomplete_string ("dc");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "dc", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "key_id", cur_token_real_len)) {
+    set_autocomplete_string ("key_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "key_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) {
+    set_autocomplete_string ("key");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  expect_token_autocomplete ("[", 1);
+  int multiplicity3 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity3 -- > 0) {
+    if (autocomplete_type_any (field3) < 0) { return -1;}
+  }
+  expect_token_autocomplete ("]", 1);
+  return 0;
+}
+int skip_constructor_binlog_default_dc (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_default_dc (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "dc", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_default_dc (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.defaultDc");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" dc :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_default_dc (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "dc", cur_token_real_len)) {
+    set_autocomplete_string ("dc");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "dc", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_our_id (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_our_id (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_our_id (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.ourId");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_our_id (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_dc_signed (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_dc_signed (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_dc_signed (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.dcSigned");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_dc_signed (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_dc_salt (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_dc_salt (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "salt", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_dc_salt (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.dcSalt");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" salt :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_dc_salt (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "salt", cur_token_real_len)) {
+    set_autocomplete_string ("salt");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "salt", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_set_dh_params (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  int multiplicity2 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity2 -- > 0) {
+    if (skip_type_any (field2) < 0) { return -1;}
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_set_dh_params (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "root", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "prime", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  expect_token ("[", 1);
+  int multiplicity2 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity2 -- > 0) {
+    if (store_type_any (field2) < 0) { return -1;}
+  }
+  expect_token ("]", 1);
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_set_dh_params (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.setDhParams");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" root :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" prime :"); }
+  int multiplicity2 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  eprintf (" [");
+  if (multiline_output >= 1) { eprintf ("\n"); }
+  if (multiline_output >= 1) { multiline_offset += multiline_offset_size;}
+  while (multiplicity2 -- > 0) {
+    if (multiline_output >= 1) { print_offset (); }
+    if (fetch_type_any (field2) < 0) { return -1;}
+    if (multiline_output >= 1) { eprintf ("\n"); }
+  }
+  if (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();}
+  eprintf (" ]");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" version :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_set_dh_params (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "root", cur_token_real_len)) {
+    set_autocomplete_string ("root");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "root", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "prime", cur_token_real_len)) {
+    set_autocomplete_string ("prime");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "prime", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  expect_token_autocomplete ("[", 1);
+  int multiplicity2 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity2 -- > 0) {
+    if (autocomplete_type_any (field2) < 0) { return -1;}
+  }
+  expect_token_autocomplete ("]", 1);
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_real_len)) {
+    set_autocomplete_string ("version");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "version", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_set_pts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_set_pts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_set_pts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.setPts");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" pts :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_set_pts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) {
+    set_autocomplete_string ("pts");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_set_qts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_set_qts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "qts", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_set_qts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.setQts");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" qts :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_set_qts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "qts", cur_token_real_len)) {
+    set_autocomplete_string ("qts");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "qts", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_set_date (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_set_date (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_set_date (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.setDate");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_set_date (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_set_seq (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_set_seq (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_set_seq (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.setSeq");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" seq :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_set_seq (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_real_len)) {
+    set_autocomplete_string ("seq");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_user_add (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field6) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_user_add (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "phone", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "is_contact", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field6) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_user_add (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.userAdd");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" first_name :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" last_name :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" hash :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" phone :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" is_contact :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_user_add (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_real_len)) {
+    set_autocomplete_string ("first_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_real_len)) {
+    set_autocomplete_string ("last_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_real_len)) {
+    set_autocomplete_string ("hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "phone", cur_token_real_len)) {
+    set_autocomplete_string ("phone");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "phone", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "is_contact", cur_token_real_len)) {
+    set_autocomplete_string ("is_contact");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "is_contact", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field6) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_user_delete (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_user_delete (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_user_delete (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.userDelete");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_user_delete (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_user_set_access_hash (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_user_set_access_hash (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_user_set_access_hash (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.userSetAccessHash");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_user_set_access_hash (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_real_len)) {
+    set_autocomplete_string ("hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_user_set_phone (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_user_set_phone (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "phone", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_user_set_phone (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.userSetPhone");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" phone :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_user_set_phone (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "phone", cur_token_real_len)) {
+    set_autocomplete_string ("phone");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "phone", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_user_set_friend (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_user_set_friend (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "friend", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_user_set_friend (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.userSetFriend");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" friend :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_user_set_friend (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "friend", cur_token_real_len)) {
+    set_autocomplete_string ("friend");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "friend", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_user_set_full_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_photo (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_user_set_full_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_photo (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_user_set_full_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.userSetFullPhoto");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" photo :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_photo (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_user_set_full_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) {
+    set_autocomplete_string ("photo");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_photo (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_user_set_blocked (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_user_set_blocked (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "blocked", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_user_set_blocked (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.userSetBlocked");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" blocked :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_user_set_blocked (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "blocked", cur_token_real_len)) {
+    set_autocomplete_string ("blocked");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "blocked", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_user_set_real_name (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_user_set_real_name (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "real_first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "real_last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_user_set_real_name (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.userSetRealName");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" real_first_name :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" real_last_name :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_user_set_real_name (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "real_first_name", cur_token_real_len)) {
+    set_autocomplete_string ("real_first_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "real_first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "real_last_name", cur_token_real_len)) {
+    set_autocomplete_string ("real_last_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "real_last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_user_set_name (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_user_set_name (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_user_set_name (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.userSetName");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" first_name :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" last_name :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_user_set_name (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_real_len)) {
+    set_autocomplete_string ("first_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_real_len)) {
+    set_autocomplete_string ("last_name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_user_set_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_user_profile_photo (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_user_set_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_user_profile_photo (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_user_set_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.userSetPhoto");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" photo :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_user_profile_photo (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_user_set_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) {
+    set_autocomplete_string ("photo");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_user_profile_photo (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_user_set_username (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_user_set_username (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_user_set_username (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.userSetUsername");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" username :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_user_set_username (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_real_len)) {
+    set_autocomplete_string ("username");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "username", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_encr_chat_delete (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_encr_chat_delete (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_encr_chat_delete (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.encrChatDelete");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_encr_chat_delete (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_encr_chat_requested (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  int multiplicity6 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity6 -- > 0) {
+    if (skip_type_any (field6) < 0) { return -1;}
+  }
+  int multiplicity7 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity7 -- > 0) {
+    if (skip_type_any (field7) < 0) { return -1;}
+  }
+  return 0;
+}
+int store_constructor_binlog_encr_chat_requested (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "admin", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "user", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  expect_token ("[", 1);
+  int multiplicity6 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity6 -- > 0) {
+    if (store_type_any (field6) < 0) { return -1;}
+  }
+  expect_token ("]", 1);
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  expect_token ("[", 1);
+  int multiplicity7 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity7 -- > 0) {
+    if (store_type_any (field7) < 0) { return -1;}
+  }
+  expect_token ("]", 1);
+  return 0;
+}
+int fetch_constructor_binlog_encr_chat_requested (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.encrChatRequested");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" admin :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" key :"); }
+  int multiplicity6 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  eprintf (" [");
+  if (multiline_output >= 1) { eprintf ("\n"); }
+  if (multiline_output >= 1) { multiline_offset += multiline_offset_size;}
+  while (multiplicity6 -- > 0) {
+    if (multiline_output >= 1) { print_offset (); }
+    if (fetch_type_any (field6) < 0) { return -1;}
+    if (multiline_output >= 1) { eprintf ("\n"); }
+  }
+  if (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();}
+  eprintf (" ]");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" nonce :"); }
+  int multiplicity7 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  eprintf (" [");
+  if (multiline_output >= 1) { eprintf ("\n"); }
+  if (multiline_output >= 1) { multiline_offset += multiline_offset_size;}
+  while (multiplicity7 -- > 0) {
+    if (multiline_output >= 1) { print_offset (); }
+    if (fetch_type_any (field7) < 0) { return -1;}
+    if (multiline_output >= 1) { eprintf ("\n"); }
+  }
+  if (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();}
+  eprintf (" ]");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_encr_chat_requested (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_real_len)) {
+    set_autocomplete_string ("hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "admin", cur_token_real_len)) {
+    set_autocomplete_string ("admin");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "admin", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "user", cur_token_real_len)) {
+    set_autocomplete_string ("user");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "user", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) {
+    set_autocomplete_string ("key");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  expect_token_autocomplete ("[", 1);
+  int multiplicity6 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity6 -- > 0) {
+    if (autocomplete_type_any (field6) < 0) { return -1;}
+  }
+  expect_token_autocomplete ("]", 1);
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) {
+    set_autocomplete_string ("nonce");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  expect_token_autocomplete ("[", 1);
+  int multiplicity7 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity7 -- > 0) {
+    if (autocomplete_type_any (field7) < 0) { return -1;}
+  }
+  expect_token_autocomplete ("]", 1);
+  return 0;
+}
+int skip_constructor_binlog_encr_chat_accepted (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  int multiplicity2 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity2 -- > 0) {
+    if (skip_type_any (field2) < 0) { return -1;}
+  }
+  int multiplicity3 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity3 -- > 0) {
+    if (skip_type_any (field3) < 0) { return -1;}
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_encr_chat_accepted (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  expect_token ("[", 1);
+  int multiplicity2 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity2 -- > 0) {
+    if (store_type_any (field2) < 0) { return -1;}
+  }
+  expect_token ("]", 1);
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  expect_token ("[", 1);
+  int multiplicity3 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity3 -- > 0) {
+    if (store_type_any (field3) < 0) { return -1;}
+  }
+  expect_token ("]", 1);
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "fingerprint", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_encr_chat_accepted (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.encrChatAccepted");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" key :"); }
+  int multiplicity2 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  eprintf (" [");
+  if (multiline_output >= 1) { eprintf ("\n"); }
+  if (multiline_output >= 1) { multiline_offset += multiline_offset_size;}
+  while (multiplicity2 -- > 0) {
+    if (multiline_output >= 1) { print_offset (); }
+    if (fetch_type_any (field2) < 0) { return -1;}
+    if (multiline_output >= 1) { eprintf ("\n"); }
+  }
+  if (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();}
+  eprintf (" ]");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" nonce :"); }
+  int multiplicity3 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  eprintf (" [");
+  if (multiline_output >= 1) { eprintf ("\n"); }
+  if (multiline_output >= 1) { multiline_offset += multiline_offset_size;}
+  while (multiplicity3 -- > 0) {
+    if (multiline_output >= 1) { print_offset (); }
+    if (fetch_type_any (field3) < 0) { return -1;}
+    if (multiline_output >= 1) { eprintf ("\n"); }
+  }
+  if (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();}
+  eprintf (" ]");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" fingerprint :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_encr_chat_accepted (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) {
+    set_autocomplete_string ("key");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  expect_token_autocomplete ("[", 1);
+  int multiplicity2 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity2 -- > 0) {
+    if (autocomplete_type_any (field2) < 0) { return -1;}
+  }
+  expect_token_autocomplete ("]", 1);
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) {
+    set_autocomplete_string ("nonce");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  expect_token_autocomplete ("[", 1);
+  int multiplicity3 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity3 -- > 0) {
+    if (autocomplete_type_any (field3) < 0) { return -1;}
+  }
+  expect_token_autocomplete ("]", 1);
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "fingerprint", cur_token_real_len)) {
+    set_autocomplete_string ("fingerprint");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "fingerprint", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_encr_chat_init (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  int multiplicity3 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity3 -- > 0) {
+    if (skip_type_any (field3) < 0) { return -1;}
+  }
+  int multiplicity4 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity4 -- > 0) {
+    if (skip_type_any (field4) < 0) { return -1;}
+  }
+  return 0;
+}
+int store_constructor_binlog_encr_chat_init (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "user", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  expect_token ("[", 1);
+  int multiplicity3 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity3 -- > 0) {
+    if (store_type_any (field3) < 0) { return -1;}
+  }
+  expect_token ("]", 1);
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "g_key", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  expect_token ("[", 1);
+  int multiplicity4 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity4 -- > 0) {
+    if (store_type_any (field4) < 0) { return -1;}
+  }
+  expect_token ("]", 1);
+  return 0;
+}
+int fetch_constructor_binlog_encr_chat_init (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.encrChatInit");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" key :"); }
+  int multiplicity3 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  eprintf (" [");
+  if (multiline_output >= 1) { eprintf ("\n"); }
+  if (multiline_output >= 1) { multiline_offset += multiline_offset_size;}
+  while (multiplicity3 -- > 0) {
+    if (multiline_output >= 1) { print_offset (); }
+    if (fetch_type_any (field3) < 0) { return -1;}
+    if (multiline_output >= 1) { eprintf ("\n"); }
+  }
+  if (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();}
+  eprintf (" ]");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" g_key :"); }
+  int multiplicity4 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  eprintf (" [");
+  if (multiline_output >= 1) { eprintf ("\n"); }
+  if (multiline_output >= 1) { multiline_offset += multiline_offset_size;}
+  while (multiplicity4 -- > 0) {
+    if (multiline_output >= 1) { print_offset (); }
+    if (fetch_type_any (field4) < 0) { return -1;}
+    if (multiline_output >= 1) { eprintf ("\n"); }
+  }
+  if (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();}
+  eprintf (" ]");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_encr_chat_init (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "user", cur_token_real_len)) {
+    set_autocomplete_string ("user");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "user", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) {
+    set_autocomplete_string ("key");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  expect_token_autocomplete ("[", 1);
+  int multiplicity3 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity3 -- > 0) {
+    if (autocomplete_type_any (field3) < 0) { return -1;}
+  }
+  expect_token_autocomplete ("]", 1);
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "g_key", cur_token_real_len)) {
+    set_autocomplete_string ("g_key");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "g_key", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  expect_token_autocomplete ("[", 1);
+  int multiplicity4 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity4 -- > 0) {
+    if (autocomplete_type_any (field4) < 0) { return -1;}
+  }
+  expect_token_autocomplete ("]", 1);
+  return 0;
+}
+int skip_constructor_binlog_encr_chat_create (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_encr_chat_create (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "admin_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "name", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_encr_chat_create (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.encrChatCreate");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" admin_id :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" name :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_encr_chat_create (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "admin_id", cur_token_real_len)) {
+    set_autocomplete_string ("admin_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "admin_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "name", cur_token_real_len)) {
+    set_autocomplete_string ("name");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "name", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_encr_chat_set_access_hash (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_encr_chat_set_access_hash (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_encr_chat_set_access_hash (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.encrChatSetAccessHash");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" hash :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_encr_chat_set_access_hash (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_real_len)) {
+    set_autocomplete_string ("hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_encr_chat_set_date (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_encr_chat_set_date (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_encr_chat_set_date (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.encrChatSetDate");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_encr_chat_set_date (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_encr_chat_set_ttl (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_encr_chat_set_ttl (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "ttl", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_encr_chat_set_ttl (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.encrChatSetTtl");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" ttl :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_encr_chat_set_ttl (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "ttl", cur_token_real_len)) {
+    set_autocomplete_string ("ttl");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "ttl", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_encr_chat_set_layer (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_encr_chat_set_layer (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "layer", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_encr_chat_set_layer (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.encrChatSetLayer");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" layer :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_encr_chat_set_layer (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "layer", cur_token_real_len)) {
+    set_autocomplete_string ("layer");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "layer", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_encr_chat_set_state (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_encr_chat_set_state (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "state", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_encr_chat_set_state (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.encrChatSetState");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" state :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_encr_chat_set_state (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "state", cur_token_real_len)) {
+    set_autocomplete_string ("state");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "state", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_encr_chat_set_key (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  int multiplicity2 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity2 -- > 0) {
+    if (skip_type_any (field2) < 0) { return -1;}
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_encr_chat_set_key (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  expect_token ("[", 1);
+  int multiplicity2 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity2 -- > 0) {
+    if (store_type_any (field2) < 0) { return -1;}
+  }
+  expect_token ("]", 1);
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "fingerprint", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_encr_chat_set_key (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.encrChatSetKey");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" key :"); }
+  int multiplicity2 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  eprintf (" [");
+  if (multiline_output >= 1) { eprintf ("\n"); }
+  if (multiline_output >= 1) { multiline_offset += multiline_offset_size;}
+  while (multiplicity2 -- > 0) {
+    if (multiline_output >= 1) { print_offset (); }
+    if (fetch_type_any (field2) < 0) { return -1;}
+    if (multiline_output >= 1) { eprintf ("\n"); }
+  }
+  if (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();}
+  eprintf (" ]");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" fingerprint :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_encr_chat_set_key (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) {
+    set_autocomplete_string ("key");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  expect_token_autocomplete ("[", 1);
+  int multiplicity2 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity2 -- > 0) {
+    if (autocomplete_type_any (field2) < 0) { return -1;}
+  }
+  expect_token_autocomplete ("]", 1);
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "fingerprint", cur_token_real_len)) {
+    set_autocomplete_string ("fingerprint");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "fingerprint", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_encr_chat_set_sha (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  int multiplicity2 = PTR2INT (
+  INT2PTR (5)  );
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity2 -- > 0) {
+    if (skip_type_any (field2) < 0) { return -1;}
+  }
+  return 0;
+}
+int store_constructor_binlog_encr_chat_set_sha (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "sha", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  expect_token ("[", 1);
+  int multiplicity2 = PTR2INT (
+  INT2PTR (5)  );
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity2 -- > 0) {
+    if (store_type_any (field2) < 0) { return -1;}
+  }
+  expect_token ("]", 1);
+  return 0;
+}
+int fetch_constructor_binlog_encr_chat_set_sha (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.encrChatSetSha");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" sha :"); }
+  int multiplicity2 = PTR2INT (
+  INT2PTR (5)  );
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  eprintf (" [");
+  if (multiline_output >= 1) { eprintf ("\n"); }
+  if (multiline_output >= 1) { multiline_offset += multiline_offset_size;}
+  while (multiplicity2 -- > 0) {
+    if (multiline_output >= 1) { print_offset (); }
+    if (fetch_type_any (field2) < 0) { return -1;}
+    if (multiline_output >= 1) { eprintf ("\n"); }
+  }
+  if (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();}
+  eprintf (" ]");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_encr_chat_set_sha (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "sha", cur_token_real_len)) {
+    set_autocomplete_string ("sha");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "sha", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  expect_token_autocomplete ("[", 1);
+  int multiplicity2 = PTR2INT (
+  INT2PTR (5)  );
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity2 -- > 0) {
+    if (autocomplete_type_any (field2) < 0) { return -1;}
+  }
+  expect_token_autocomplete ("]", 1);
+  return 0;
+}
+int skip_constructor_binlog_encr_chat_exchange_request (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  int multiplicity3 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity3 -- > 0) {
+    if (skip_type_any (field3) < 0) { return -1;}
+  }
+  return 0;
+}
+int store_constructor_binlog_encr_chat_exchange_request (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "exchange_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "a", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  expect_token ("[", 1);
+  int multiplicity3 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity3 -- > 0) {
+    if (store_type_any (field3) < 0) { return -1;}
+  }
+  expect_token ("]", 1);
+  return 0;
+}
+int fetch_constructor_binlog_encr_chat_exchange_request (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.encrChatExchangeRequest");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" exchange_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" a :"); }
+  int multiplicity3 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  eprintf (" [");
+  if (multiline_output >= 1) { eprintf ("\n"); }
+  if (multiline_output >= 1) { multiline_offset += multiline_offset_size;}
+  while (multiplicity3 -- > 0) {
+    if (multiline_output >= 1) { print_offset (); }
+    if (fetch_type_any (field3) < 0) { return -1;}
+    if (multiline_output >= 1) { eprintf ("\n"); }
+  }
+  if (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();}
+  eprintf (" ]");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_encr_chat_exchange_request (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "exchange_id", cur_token_real_len)) {
+    set_autocomplete_string ("exchange_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "exchange_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "a", cur_token_real_len)) {
+    set_autocomplete_string ("a");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "a", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  expect_token_autocomplete ("[", 1);
+  int multiplicity3 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity3 -- > 0) {
+    if (autocomplete_type_any (field3) < 0) { return -1;}
+  }
+  expect_token_autocomplete ("]", 1);
+  return 0;
+}
+int skip_constructor_binlog_encr_chat_exchange_accept (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field2) < 0) { return -1;}
+  int multiplicity3 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity3 -- > 0) {
+    if (skip_type_any (field3) < 0) { return -1;}
+  }
+  return 0;
+}
+int store_constructor_binlog_encr_chat_exchange_accept (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "exchange_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  expect_token ("[", 1);
+  int multiplicity3 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity3 -- > 0) {
+    if (store_type_any (field3) < 0) { return -1;}
+  }
+  expect_token ("]", 1);
+  return 0;
+}
+int fetch_constructor_binlog_encr_chat_exchange_accept (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.encrChatExchangeAccept");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" exchange_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" key :"); }
+  int multiplicity3 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  eprintf (" [");
+  if (multiline_output >= 1) { eprintf ("\n"); }
+  if (multiline_output >= 1) { multiline_offset += multiline_offset_size;}
+  while (multiplicity3 -- > 0) {
+    if (multiline_output >= 1) { print_offset (); }
+    if (fetch_type_any (field3) < 0) { return -1;}
+    if (multiline_output >= 1) { eprintf ("\n"); }
+  }
+  if (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();}
+  eprintf (" ]");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_encr_chat_exchange_accept (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "exchange_id", cur_token_real_len)) {
+    set_autocomplete_string ("exchange_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "exchange_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) {
+    set_autocomplete_string ("key");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  expect_token_autocomplete ("[", 1);
+  int multiplicity3 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity3 -- > 0) {
+    if (autocomplete_type_any (field3) < 0) { return -1;}
+  }
+  expect_token_autocomplete ("]", 1);
+  return 0;
+}
+int skip_constructor_binlog_encr_chat_exchange_commit (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  int multiplicity2 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity2 -- > 0) {
+    if (skip_type_any (field2) < 0) { return -1;}
+  }
+  return 0;
+}
+int store_constructor_binlog_encr_chat_exchange_commit (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  expect_token ("[", 1);
+  int multiplicity2 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity2 -- > 0) {
+    if (store_type_any (field2) < 0) { return -1;}
+  }
+  expect_token ("]", 1);
+  return 0;
+}
+int fetch_constructor_binlog_encr_chat_exchange_commit (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.encrChatExchangeCommit");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" key :"); }
+  int multiplicity2 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  eprintf (" [");
+  if (multiline_output >= 1) { eprintf ("\n"); }
+  if (multiline_output >= 1) { multiline_offset += multiline_offset_size;}
+  while (multiplicity2 -- > 0) {
+    if (multiline_output >= 1) { print_offset (); }
+    if (fetch_type_any (field2) < 0) { return -1;}
+    if (multiline_output >= 1) { eprintf ("\n"); }
+  }
+  if (multiline_output >= 1) { multiline_offset -= multiline_offset_size; print_offset ();}
+  eprintf (" ]");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_encr_chat_exchange_commit (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) {
+    set_autocomplete_string ("key");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  expect_token_autocomplete ("[", 1);
+  int multiplicity2 = PTR2INT (
+  INT2PTR (64)  );
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  while (multiplicity2 -- > 0) {
+    if (autocomplete_type_any (field2) < 0) { return -1;}
+  }
+  expect_token_autocomplete ("]", 1);
+  return 0;
+}
+int skip_constructor_binlog_encr_chat_exchange_confirm (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_encr_chat_exchange_confirm (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_encr_chat_exchange_confirm (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.encrChatExchangeConfirm");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_encr_chat_exchange_confirm (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_encr_chat_exchange_abort (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_encr_chat_exchange_abort (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_encr_chat_exchange_abort (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.encrChatExchangeAbort");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_encr_chat_exchange_abort (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_encr_chat_update_seq (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_encr_chat_update_seq (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "in_seq_no", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "out_seq_no", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_encr_chat_update_seq (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.encrChatUpdateSeq");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" in_seq_no :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" out_seq_no :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_encr_chat_update_seq (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "in_seq_no", cur_token_real_len)) {
+    set_autocomplete_string ("in_seq_no");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "in_seq_no", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "out_seq_no", cur_token_real_len)) {
+    set_autocomplete_string ("out_seq_no");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "out_seq_no", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_encr_chat_set_seq (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_encr_chat_set_seq (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "in_seq_no", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "last_in_seq_no", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "out_seq_no", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_encr_chat_set_seq (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.encrChatSetSeq");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" in_seq_no :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" last_in_seq_no :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" out_seq_no :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_encr_chat_set_seq (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "in_seq_no", cur_token_real_len)) {
+    set_autocomplete_string ("in_seq_no");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "in_seq_no", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "last_in_seq_no", cur_token_real_len)) {
+    set_autocomplete_string ("last_in_seq_no");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "last_in_seq_no", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "out_seq_no", cur_token_real_len)) {
+    set_autocomplete_string ("out_seq_no");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "out_seq_no", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_chat_create (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x51851a31, .id = "Bare_binlog.FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_binlog_file_location (field7) < 0) { return -1;}
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x51851a31, .id = "Bare_binlog.FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_binlog_file_location (field8) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_chat_create (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "user_num", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "photo_big", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x51851a31, .id = "Bare_binlog.FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_binlog_file_location (field7) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "photo_small", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x51851a31, .id = "Bare_binlog.FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_binlog_file_location (field8) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_chat_create (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.chatCreate");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" flags :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" title :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user_num :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" version :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" photo_big :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x51851a31, .id = "Bare_binlog.FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_binlog_file_location (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" photo_small :"); }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x51851a31, .id = "Bare_binlog.FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_binlog_file_location (field8) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_chat_create (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "flags", cur_token_real_len)) {
+    set_autocomplete_string ("flags");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "flags", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) {
+    set_autocomplete_string ("title");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "user_num", cur_token_real_len)) {
+    set_autocomplete_string ("user_num");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "user_num", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_real_len)) {
+    set_autocomplete_string ("version");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "version", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "photo_big", cur_token_real_len)) {
+    set_autocomplete_string ("photo_big");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "photo_big", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x51851a31, .id = "Bare_binlog.FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_binlog_file_location (field7) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "photo_small", cur_token_real_len)) {
+    set_autocomplete_string ("photo_small");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "photo_small", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x51851a31, .id = "Bare_binlog.FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_binlog_file_location (field8) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_chat_change_flags (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_chat_change_flags (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "set_flags", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "clear_flags", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_chat_change_flags (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.chatChangeFlags");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" set_flags :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" clear_flags :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_chat_change_flags (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "set_flags", cur_token_real_len)) {
+    set_autocomplete_string ("set_flags");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "set_flags", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "clear_flags", cur_token_real_len)) {
+    set_autocomplete_string ("clear_flags");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "clear_flags", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_chat_set_title (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_chat_set_title (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_chat_set_title (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.chatSetTitle");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" title :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_chat_set_title (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) {
+    set_autocomplete_string ("title");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_chat_set_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x51851a31, .id = "Bare_binlog.FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_binlog_file_location (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x51851a31, .id = "Bare_binlog.FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_binlog_file_location (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_chat_set_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "photo_big", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x51851a31, .id = "Bare_binlog.FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_binlog_file_location (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "photo_small", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x51851a31, .id = "Bare_binlog.FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_binlog_file_location (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_chat_set_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.chatSetPhoto");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" photo_big :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x51851a31, .id = "Bare_binlog.FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_binlog_file_location (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" photo_small :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x51851a31, .id = "Bare_binlog.FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_binlog_file_location (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_chat_set_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "photo_big", cur_token_real_len)) {
+    set_autocomplete_string ("photo_big");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "photo_big", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x51851a31, .id = "Bare_binlog.FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_binlog_file_location (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "photo_small", cur_token_real_len)) {
+    set_autocomplete_string ("photo_small");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "photo_small", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x51851a31, .id = "Bare_binlog.FileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_binlog_file_location (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_chat_set_date (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_chat_set_date (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_chat_set_date (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.chatSetDate");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_chat_set_date (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_chat_set_version (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_chat_set_version (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "users_num", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_chat_set_version (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.chatSetVersion");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" version :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users_num :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_chat_set_version (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_real_len)) {
+    set_autocomplete_string ("version");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "version", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "users_num", cur_token_real_len)) {
+    set_autocomplete_string ("users_num");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "users_num", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_chat_set_admin (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_chat_set_admin (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "admin", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_chat_set_admin (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.chatSetAdmin");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" admin :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_chat_set_admin (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "admin", cur_token_real_len)) {
+    set_autocomplete_string ("admin");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "admin", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_chat_set_participants (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe34a3bea, .id = "Bare_Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x16852cd5, .id = "Bare_binlog.ChatParticipant", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_bare_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_chat_set_participants (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "participants", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe34a3bea, .id = "Bare_Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x16852cd5, .id = "Bare_binlog.ChatParticipant", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_bare_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_chat_set_participants (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.chatSetParticipants");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" version :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" participants :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe34a3bea, .id = "Bare_Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x16852cd5, .id = "Bare_binlog.ChatParticipant", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_bare_vector (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_chat_set_participants (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_real_len)) {
+    set_autocomplete_string ("version");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "version", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "participants", cur_token_real_len)) {
+    set_autocomplete_string ("participants");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "participants", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe34a3bea, .id = "Bare_Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x16852cd5, .id = "Bare_binlog.ChatParticipant", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_bare_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_chat_set_full_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_photo (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_chat_set_full_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_photo (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_chat_set_full_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.chatSetFullPhoto");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" photo :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_photo (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_chat_set_full_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) {
+    set_autocomplete_string ("photo");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_photo (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_chat_add_participant (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x16852cd5, .id = "Bare_binlog.ChatParticipant", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_binlog_chat_participant (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_chat_add_participant (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "user", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x16852cd5, .id = "Bare_binlog.ChatParticipant", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_binlog_chat_participant (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_chat_add_participant (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.chatAddParticipant");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" version :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x16852cd5, .id = "Bare_binlog.ChatParticipant", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_binlog_chat_participant (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_chat_add_participant (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_real_len)) {
+    set_autocomplete_string ("version");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "version", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "user", cur_token_real_len)) {
+    set_autocomplete_string ("user");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "user", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x16852cd5, .id = "Bare_binlog.ChatParticipant", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_binlog_chat_participant (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_chat_del_participant (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_chat_del_participant (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "user", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_chat_del_participant (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.chatDelParticipant");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" version :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_chat_del_participant (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_real_len)) {
+    set_autocomplete_string ("version");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "version", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "user", cur_token_real_len)) {
+    set_autocomplete_string ("user");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "user", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_create_message_text (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field7) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_create_message_text (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "to_type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "unread", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "text", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field7) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_create_message_text (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.createMessageText");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" from_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" to_type :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" to_id :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" unread :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" text :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_create_message_text (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_real_len)) {
+    set_autocomplete_string ("from_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "to_type", cur_token_real_len)) {
+    set_autocomplete_string ("to_type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "to_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_real_len)) {
+    set_autocomplete_string ("to_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "unread", cur_token_real_len)) {
+    set_autocomplete_string ("unread");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "unread", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "text", cur_token_real_len)) {
+    set_autocomplete_string ("text");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "text", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field7) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_send_message_text (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field6) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_send_message_text (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "to_type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "text", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field6) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_send_message_text (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.sendMessageText");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" from_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" to_type :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" to_id :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" text :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_send_message_text (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_real_len)) {
+    set_autocomplete_string ("from_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "to_type", cur_token_real_len)) {
+    set_autocomplete_string ("to_type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "to_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_real_len)) {
+    set_autocomplete_string ("to_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "text", cur_token_real_len)) {
+    set_autocomplete_string ("text");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "text", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field6) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_send_message_action_encr (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_decrypted_message_action (field6) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_send_message_action_encr (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "to_type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_decrypted_message_action (field6) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_send_message_action_encr (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.sendMessageActionEncr");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" from_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" to_type :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" to_id :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" action :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_decrypted_message_action (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_send_message_action_encr (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_real_len)) {
+    set_autocomplete_string ("from_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "to_type", cur_token_real_len)) {
+    set_autocomplete_string ("to_type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "to_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_real_len)) {
+    set_autocomplete_string ("to_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_real_len)) {
+    set_autocomplete_string ("action");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "action", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_decrypted_message_action (field6) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_create_message_text_fwd (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field7) < 0) { return -1;}
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field8) < 0) { return -1;}
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field9) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_create_message_text_fwd (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "to_type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "fwd_from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "fwd_date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field7) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "unread", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field8) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "text", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field9) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_create_message_text_fwd (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.createMessageTextFwd");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" from_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" to_type :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" to_id :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" fwd_from_id :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" fwd_date :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" unread :"); }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field8) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" text :"); }
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field9) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_create_message_text_fwd (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_real_len)) {
+    set_autocomplete_string ("from_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "to_type", cur_token_real_len)) {
+    set_autocomplete_string ("to_type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "to_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_real_len)) {
+    set_autocomplete_string ("to_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "fwd_from_id", cur_token_real_len)) {
+    set_autocomplete_string ("fwd_from_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "fwd_from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "fwd_date", cur_token_real_len)) {
+    set_autocomplete_string ("fwd_date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "fwd_date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field7) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "unread", cur_token_real_len)) {
+    set_autocomplete_string ("unread");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "unread", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field8) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "text", cur_token_real_len)) {
+    set_autocomplete_string ("text");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "text", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field9) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_create_message_media (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field7) < 0) { return -1;}
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9f690be5, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_message_media (field8) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_create_message_media (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "to_type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "unread", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "text", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field7) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9f690be5, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_message_media (field8) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_create_message_media (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.createMessageMedia");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" from_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" to_type :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" to_id :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" unread :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" text :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" media :"); }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9f690be5, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_message_media (field8) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_create_message_media (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_real_len)) {
+    set_autocomplete_string ("from_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "to_type", cur_token_real_len)) {
+    set_autocomplete_string ("to_type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "to_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_real_len)) {
+    set_autocomplete_string ("to_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "unread", cur_token_real_len)) {
+    set_autocomplete_string ("unread");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "unread", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "text", cur_token_real_len)) {
+    set_autocomplete_string ("text");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "text", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field7) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_real_len)) {
+    set_autocomplete_string ("media");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "media", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9f690be5, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_message_media (field8) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_create_message_media_encr (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe21b7dd5, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_decrypted_message_media (field7) < 0) { return -1;}
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_encrypted_file (field8) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_create_message_media_encr (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "to_type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "text", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe21b7dd5, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_decrypted_message_media (field7) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_encrypted_file (field8) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_create_message_media_encr (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.createMessageMediaEncr");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" from_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" to_type :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" to_id :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" text :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" media :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe21b7dd5, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_decrypted_message_media (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" file :"); }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_encrypted_file (field8) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_create_message_media_encr (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_real_len)) {
+    set_autocomplete_string ("from_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "to_type", cur_token_real_len)) {
+    set_autocomplete_string ("to_type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "to_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_real_len)) {
+    set_autocomplete_string ("to_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "text", cur_token_real_len)) {
+    set_autocomplete_string ("text");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "text", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_real_len)) {
+    set_autocomplete_string ("media");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "media", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe21b7dd5, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_decrypted_message_media (field7) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_real_len)) {
+    set_autocomplete_string ("file");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "file", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_encrypted_file (field8) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_create_message_media_encr_pending (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe21b7dd5, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_decrypted_message_media (field7) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_create_message_media_encr_pending (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "to_type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "text", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe21b7dd5, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_decrypted_message_media (field7) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_create_message_media_encr_pending (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.createMessageMediaEncrPending");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" from_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" to_type :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" to_id :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" text :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" media :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe21b7dd5, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_decrypted_message_media (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_create_message_media_encr_pending (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_real_len)) {
+    set_autocomplete_string ("from_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "to_type", cur_token_real_len)) {
+    set_autocomplete_string ("to_type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "to_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_real_len)) {
+    set_autocomplete_string ("to_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "text", cur_token_real_len)) {
+    set_autocomplete_string ("text");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "text", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_real_len)) {
+    set_autocomplete_string ("media");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "media", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe21b7dd5, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_decrypted_message_media (field7) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_create_message_media_encr_sent (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_encrypted_file (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_create_message_media_encr_sent (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_encrypted_file (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_create_message_media_encr_sent (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.createMessageMediaEncrSent");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" file :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_encrypted_file (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_create_message_media_encr_sent (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_real_len)) {
+    set_autocomplete_string ("file");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "file", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_encrypted_file (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_create_message_media_fwd (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field7) < 0) { return -1;}
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field8) < 0) { return -1;}
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field9) < 0) { return -1;}
+  struct paramed_type *field10 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9f690be5, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_message_media (field10) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_create_message_media_fwd (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "to_type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "fwd_from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "fwd_date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field7) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "unread", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field8) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "text", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field9) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field10 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9f690be5, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_message_media (field10) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_create_message_media_fwd (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.createMessageMediaFwd");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" from_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" to_type :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" to_id :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" fwd_from_id :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" fwd_date :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" unread :"); }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field8) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" text :"); }
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field9) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" media :"); }
+  struct paramed_type *field10 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9f690be5, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_message_media (field10) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_create_message_media_fwd (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_real_len)) {
+    set_autocomplete_string ("from_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "to_type", cur_token_real_len)) {
+    set_autocomplete_string ("to_type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "to_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_real_len)) {
+    set_autocomplete_string ("to_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "fwd_from_id", cur_token_real_len)) {
+    set_autocomplete_string ("fwd_from_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "fwd_from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "fwd_date", cur_token_real_len)) {
+    set_autocomplete_string ("fwd_date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "fwd_date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field7) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "unread", cur_token_real_len)) {
+    set_autocomplete_string ("unread");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "unread", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field8) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "text", cur_token_real_len)) {
+    set_autocomplete_string ("text");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "text", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field9) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_real_len)) {
+    set_autocomplete_string ("media");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "media", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field10 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9f690be5, .id = "MessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_message_media (field10) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_create_message_service (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xc0a8e012, .id = "MessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_message_action (field7) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_create_message_service (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "to_type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "unread", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xc0a8e012, .id = "MessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_message_action (field7) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_create_message_service (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.createMessageService");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" from_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" to_type :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" to_id :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" unread :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" action :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xc0a8e012, .id = "MessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_message_action (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_create_message_service (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_real_len)) {
+    set_autocomplete_string ("from_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "to_type", cur_token_real_len)) {
+    set_autocomplete_string ("to_type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "to_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_real_len)) {
+    set_autocomplete_string ("to_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "unread", cur_token_real_len)) {
+    set_autocomplete_string ("unread");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "unread", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_real_len)) {
+    set_autocomplete_string ("action");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "action", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xc0a8e012, .id = "MessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_message_action (field7) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_create_message_service_encr (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_decrypted_message_action (field6) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_create_message_service_encr (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "to_type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_decrypted_message_action (field6) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_create_message_service_encr (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.createMessageServiceEncr");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" from_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" to_type :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" to_id :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" action :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_decrypted_message_action (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_create_message_service_encr (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_real_len)) {
+    set_autocomplete_string ("from_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "to_type", cur_token_real_len)) {
+    set_autocomplete_string ("to_type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "to_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_real_len)) {
+    set_autocomplete_string ("to_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_real_len)) {
+    set_autocomplete_string ("action");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "action", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4e0eefde, .id = "DecryptedMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_decrypted_message_action (field6) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_create_message_service_fwd (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field6) < 0) { return -1;}
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field7) < 0) { return -1;}
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field8) < 0) { return -1;}
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xc0a8e012, .id = "MessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_message_action (field9) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_create_message_service_fwd (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "to_type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "fwd_from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field6) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "fwd_date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field7) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "unread", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field8) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xc0a8e012, .id = "MessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_message_action (field9) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_create_message_service_fwd (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.createMessageServiceFwd");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" from_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" to_type :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" to_id :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" fwd_from_id :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" fwd_date :"); }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field7) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" unread :"); }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field8) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" action :"); }
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xc0a8e012, .id = "MessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_message_action (field9) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_create_message_service_fwd (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "from_id", cur_token_real_len)) {
+    set_autocomplete_string ("from_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "to_type", cur_token_real_len)) {
+    set_autocomplete_string ("to_type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "to_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "to_id", cur_token_real_len)) {
+    set_autocomplete_string ("to_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "to_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "fwd_from_id", cur_token_real_len)) {
+    set_autocomplete_string ("fwd_from_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "fwd_from_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field6) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "fwd_date", cur_token_real_len)) {
+    set_autocomplete_string ("fwd_date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "fwd_date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field7) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "unread", cur_token_real_len)) {
+    set_autocomplete_string ("unread");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "unread", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field8) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_real_len)) {
+    set_autocomplete_string ("action");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "action", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xc0a8e012, .id = "MessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_message_action (field9) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_message_set_unread (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_message_set_unread (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_message_set_unread (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.messageSetUnread");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_message_set_unread (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_message_set_unread_long (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_message_set_unread_long (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_message_set_unread_long (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.messageSetUnreadLong");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_message_set_unread_long (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_set_message_sent (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_set_message_sent (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_set_message_sent (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.setMessageSent");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_set_message_sent (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_set_msg_id (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_set_msg_id (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "old_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "new_id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_set_msg_id (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.setMsgId");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" old_id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" new_id :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_set_msg_id (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "old_id", cur_token_real_len)) {
+    set_autocomplete_string ("old_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "old_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "new_id", cur_token_real_len)) {
+    set_autocomplete_string ("new_id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "new_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_delete_msg (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_delete_msg (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_delete_msg (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.deleteMsg");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_delete_msg (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_message_set_outbound (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_message_set_outbound (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_message_set_outbound (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.messageSetOutbound");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_message_set_outbound (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_msg_seq_update (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_msg_seq_update (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_msg_seq_update (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.msgSeqUpdate");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_msg_seq_update (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_msg_update (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_binlog_msg_update (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_binlog_msg_update (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.msgUpdate");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_long (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_msg_update (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_binlog_reset_authorization (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  return 0;
+}
+int store_constructor_binlog_reset_authorization (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  return 0;
+}
+int fetch_constructor_binlog_reset_authorization (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  eprintf (" binlog.resetAuthorization");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_binlog_reset_authorization (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf034fbee && T->type->name != 0x0fcb0411)) { return -1; }
+  return 0;
+}
+int skip_constructor_contacts_blocked (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x561bc879, .id = "ContactBlocked", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_contacts_blocked (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "blocked", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x561bc879, .id = "ContactBlocked", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_contacts_blocked (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return -1; }
+  eprintf (" contacts.blocked");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" blocked :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x561bc879, .id = "ContactBlocked", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_contacts_blocked (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "blocked", cur_token_real_len)) {
+    set_autocomplete_string ("blocked");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "blocked", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x561bc879, .id = "ContactBlocked", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_contacts_blocked_slice (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x561bc879, .id = "ContactBlocked", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_contacts_blocked_slice (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "count", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "blocked", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x561bc879, .id = "ContactBlocked", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_contacts_blocked_slice (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return -1; }
+  eprintf (" contacts.blockedSlice");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" count :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" blocked :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x561bc879, .id = "ContactBlocked", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_contacts_blocked_slice (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x8c1b8fb4 && T->type->name != 0x73e4704b)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "count", cur_token_real_len)) {
+    set_autocomplete_string ("count");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "count", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "blocked", cur_token_real_len)) {
+    set_autocomplete_string ("blocked");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "blocked", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x561bc879, .id = "ContactBlocked", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_contacts_contacts_not_modified (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return -1; }
+  return 0;
+}
+int store_constructor_contacts_contacts_not_modified (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return -1; }
+  return 0;
+}
+int fetch_constructor_contacts_contacts_not_modified (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return -1; }
+  eprintf (" contacts.contactsNotModified");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_contacts_contacts_not_modified (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return -1; }
+  return 0;
+}
+int skip_constructor_contacts_contacts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xf911c994, .id = "Contact", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_contacts_contacts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "contacts", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xf911c994, .id = "Contact", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_contacts_contacts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return -1; }
+  eprintf (" contacts.contacts");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" contacts :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xf911c994, .id = "Contact", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_contacts_contacts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xd8c02560 && T->type->name != 0x273fda9f)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "contacts", cur_token_real_len)) {
+    set_autocomplete_string ("contacts");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "contacts", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xf911c994, .id = "Contact", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_contacts_foreign_link_unknown (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xaf5eb25e && T->type->name != 0x50a14da1)) { return -1; }
+  return 0;
+}
+int store_constructor_contacts_foreign_link_unknown (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xaf5eb25e && T->type->name != 0x50a14da1)) { return -1; }
+  return 0;
+}
+int fetch_constructor_contacts_foreign_link_unknown (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xaf5eb25e && T->type->name != 0x50a14da1)) { return -1; }
+  eprintf (" contacts.foreignLinkUnknown");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_contacts_foreign_link_unknown (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xaf5eb25e && T->type->name != 0x50a14da1)) { return -1; }
+  return 0;
+}
+int skip_constructor_contacts_foreign_link_requested (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xaf5eb25e && T->type->name != 0x50a14da1)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bool (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_contacts_foreign_link_requested (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xaf5eb25e && T->type->name != 0x50a14da1)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "has_phone", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bool (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_contacts_foreign_link_requested (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xaf5eb25e && T->type->name != 0x50a14da1)) { return -1; }
+  eprintf (" contacts.foreignLinkRequested");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" has_phone :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bool (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_contacts_foreign_link_requested (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xaf5eb25e && T->type->name != 0x50a14da1)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "has_phone", cur_token_real_len)) {
+    set_autocomplete_string ("has_phone");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "has_phone", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bool (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_contacts_foreign_link_mutual (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xaf5eb25e && T->type->name != 0x50a14da1)) { return -1; }
+  return 0;
+}
+int store_constructor_contacts_foreign_link_mutual (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xaf5eb25e && T->type->name != 0x50a14da1)) { return -1; }
+  return 0;
+}
+int fetch_constructor_contacts_foreign_link_mutual (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xaf5eb25e && T->type->name != 0x50a14da1)) { return -1; }
+  eprintf (" contacts.foreignLinkMutual");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_contacts_foreign_link_mutual (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xaf5eb25e && T->type->name != 0x50a14da1)) { return -1; }
+  return 0;
+}
+int skip_constructor_contacts_found (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0566000e && T->type->name != 0xfa99fff1)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xea879f95, .id = "ContactFound", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_contacts_found (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0566000e && T->type->name != 0xfa99fff1)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "results", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xea879f95, .id = "ContactFound", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_contacts_found (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0566000e && T->type->name != 0xfa99fff1)) { return -1; }
+  eprintf (" contacts.found");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" results :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xea879f95, .id = "ContactFound", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_contacts_found (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x0566000e && T->type->name != 0xfa99fff1)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "results", cur_token_real_len)) {
+    set_autocomplete_string ("results");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "results", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xea879f95, .id = "ContactFound", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_contacts_imported_contacts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xad524315 && T->type->name != 0x52adbcea)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xd0028438, .id = "ImportedContact", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_contacts_imported_contacts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xad524315 && T->type->name != 0x52adbcea)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "imported", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xd0028438, .id = "ImportedContact", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "retry_contacts", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_contacts_imported_contacts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xad524315 && T->type->name != 0x52adbcea)) { return -1; }
+  eprintf (" contacts.importedContacts");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" imported :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xd0028438, .id = "ImportedContact", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" retry_contacts :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_contacts_imported_contacts (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xad524315 && T->type->name != 0x52adbcea)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "imported", cur_token_real_len)) {
+    set_autocomplete_string ("imported");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "imported", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xd0028438, .id = "ImportedContact", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "retry_contacts", cur_token_real_len)) {
+    set_autocomplete_string ("retry_contacts");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "retry_contacts", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_contacts_link (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xeccea3f5 && T->type->name != 0x13315c0a)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7c031857, .id = "contacts.MyLink", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_contacts_my_link (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xaf5eb25e, .id = "contacts.ForeignLink", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_contacts_foreign_link (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_user (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_contacts_link (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xeccea3f5 && T->type->name != 0x13315c0a)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "my_link", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7c031857, .id = "contacts.MyLink", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_contacts_my_link (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "foreign_link", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xaf5eb25e, .id = "contacts.ForeignLink", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_contacts_foreign_link (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "user", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_user (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_contacts_link (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xeccea3f5 && T->type->name != 0x13315c0a)) { return -1; }
+  eprintf (" contacts.link");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" my_link :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7c031857, .id = "contacts.MyLink", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_contacts_my_link (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" foreign_link :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xaf5eb25e, .id = "contacts.ForeignLink", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_contacts_foreign_link (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_user (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_contacts_link (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xeccea3f5 && T->type->name != 0x13315c0a)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "my_link", cur_token_real_len)) {
+    set_autocomplete_string ("my_link");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "my_link", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7c031857, .id = "contacts.MyLink", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_contacts_my_link (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "foreign_link", cur_token_real_len)) {
+    set_autocomplete_string ("foreign_link");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "foreign_link", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xaf5eb25e, .id = "contacts.ForeignLink", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_contacts_foreign_link (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "user", cur_token_real_len)) {
+    set_autocomplete_string ("user");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "user", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_user (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_contacts_my_link_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7c031857 && T->type->name != 0x83fce7a8)) { return -1; }
+  return 0;
+}
+int store_constructor_contacts_my_link_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7c031857 && T->type->name != 0x83fce7a8)) { return -1; }
+  return 0;
+}
+int fetch_constructor_contacts_my_link_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7c031857 && T->type->name != 0x83fce7a8)) { return -1; }
+  eprintf (" contacts.myLinkEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_contacts_my_link_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7c031857 && T->type->name != 0x83fce7a8)) { return -1; }
+  return 0;
+}
+int skip_constructor_contacts_my_link_requested (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7c031857 && T->type->name != 0x83fce7a8)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bool (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_contacts_my_link_requested (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7c031857 && T->type->name != 0x83fce7a8)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "contact", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bool (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_contacts_my_link_requested (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7c031857 && T->type->name != 0x83fce7a8)) { return -1; }
+  eprintf (" contacts.myLinkRequested");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" contact :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bool (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_contacts_my_link_requested (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7c031857 && T->type->name != 0x83fce7a8)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "contact", cur_token_real_len)) {
+    set_autocomplete_string ("contact");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "contact", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bool (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_contacts_my_link_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7c031857 && T->type->name != 0x83fce7a8)) { return -1; }
+  return 0;
+}
+int store_constructor_contacts_my_link_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7c031857 && T->type->name != 0x83fce7a8)) { return -1; }
+  return 0;
+}
+int fetch_constructor_contacts_my_link_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7c031857 && T->type->name != 0x83fce7a8)) { return -1; }
+  eprintf (" contacts.myLinkContact");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_contacts_my_link_contact (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7c031857 && T->type->name != 0x83fce7a8)) { return -1; }
+  return 0;
+}
+int skip_constructor_contacts_suggested (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x5649dcc5 && T->type->name != 0xa9b6233a)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x3de191a1, .id = "ContactSuggested", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_contacts_suggested (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x5649dcc5 && T->type->name != 0xa9b6233a)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "results", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x3de191a1, .id = "ContactSuggested", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_contacts_suggested (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x5649dcc5 && T->type->name != 0xa9b6233a)) { return -1; }
+  eprintf (" contacts.suggested");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" results :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x3de191a1, .id = "ContactSuggested", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_contacts_suggested (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x5649dcc5 && T->type->name != 0xa9b6233a)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "results", cur_token_real_len)) {
+    set_autocomplete_string ("results");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "results", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x3de191a1, .id = "ContactSuggested", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_geochats_located (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x48feb267 && T->type->name != 0xb7014d98)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x3631cf4c, .id = "ChatLocated", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_geochats_located (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x48feb267 && T->type->name != 0xb7014d98)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "results", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x3631cf4c, .id = "ChatLocated", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_geochats_located (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x48feb267 && T->type->name != 0xb7014d98)) { return -1; }
+  eprintf (" geochats.located");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" results :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x3631cf4c, .id = "ChatLocated", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" messages :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chats :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_geochats_located (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x48feb267 && T->type->name != 0xb7014d98)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "results", cur_token_real_len)) {
+    set_autocomplete_string ("results");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "results", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x3631cf4c, .id = "ChatLocated", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_real_len)) {
+    set_autocomplete_string ("messages");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "messages", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) {
+    set_autocomplete_string ("chats");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_geochats_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_geochats_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_geochats_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return -1; }
+  eprintf (" geochats.messages");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" messages :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chats :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_geochats_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_real_len)) {
+    set_autocomplete_string ("messages");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "messages", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) {
+    set_autocomplete_string ("chats");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_geochats_messages_slice (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_geochats_messages_slice (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "count", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_geochats_messages_slice (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return -1; }
+  eprintf (" geochats.messagesSlice");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" count :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" messages :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chats :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_geochats_messages_slice (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x6d0a0e59 && T->type->name != 0x92f5f1a6)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "count", cur_token_real_len)) {
+    set_autocomplete_string ("count");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "count", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_real_len)) {
+    set_autocomplete_string ("messages");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "messages", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) {
+    set_autocomplete_string ("chats");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_geochats_stated_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x17b1578b && T->type->name != 0xe84ea874)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_geo_chat_message (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_geochats_stated_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x17b1578b && T->type->name != 0xe84ea874)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_geo_chat_message (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_geochats_stated_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x17b1578b && T->type->name != 0xe84ea874)) { return -1; }
+  eprintf (" geochats.statedMessage");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" message :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_geo_chat_message (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chats :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" seq :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_geochats_stated_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x17b1578b && T->type->name != 0xe84ea874)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) {
+    set_autocomplete_string ("message");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf67b4034, .id = "GeoChatMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_geo_chat_message (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) {
+    set_autocomplete_string ("chats");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_real_len)) {
+    set_autocomplete_string ("seq");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_help_app_update (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bool (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_help_app_update (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "critical", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bool (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "url", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "text", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_help_app_update (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return -1; }
+  eprintf (" help.appUpdate");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" critical :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bool (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" url :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" text :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_help_app_update (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "critical", cur_token_real_len)) {
+    set_autocomplete_string ("critical");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "critical", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bool (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "url", cur_token_real_len)) {
+    set_autocomplete_string ("url");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "url", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "text", cur_token_real_len)) {
+    set_autocomplete_string ("text");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "text", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_help_no_app_update (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return -1; }
+  return 0;
+}
+int store_constructor_help_no_app_update (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return -1; }
+  return 0;
+}
+int fetch_constructor_help_no_app_update (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return -1; }
+  eprintf (" help.noAppUpdate");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_help_no_app_update (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x4ddd9627 && T->type->name != 0xb22269d8)) { return -1; }
+  return 0;
+}
+int skip_constructor_help_invite_text (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x18cb9f78 && T->type->name != 0xe7346087)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_help_invite_text (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x18cb9f78 && T->type->name != 0xe7346087)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_help_invite_text (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x18cb9f78 && T->type->name != 0xe7346087)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field1) < 0) { return -1;}
+  return 0;
+}
+int autocomplete_constructor_help_invite_text (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x18cb9f78 && T->type->name != 0xe7346087)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_help_support (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x17c6b5f6 && T->type->name != 0xe8394a09)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_user (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_help_support (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x17c6b5f6 && T->type->name != 0xe8394a09)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "user", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_user (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_help_support (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x17c6b5f6 && T->type->name != 0xe8394a09)) { return -1; }
+  eprintf (" help.support");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" phone_number :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" user :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_user (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_help_support (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x17c6b5f6 && T->type->name != 0xe8394a09)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_real_len)) {
+    set_autocomplete_string ("phone_number");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "phone_number", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "user", cur_token_real_len)) {
+    set_autocomplete_string ("user");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "user", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_user (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_messages_affected_history (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb7de36f2 && T->type->name != 0x4821c90d)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_messages_affected_history (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb7de36f2 && T->type->name != 0x4821c90d)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_messages_affected_history (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb7de36f2 && T->type->name != 0x4821c90d)) { return -1; }
+  eprintf (" messages.affectedHistory");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" pts :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" seq :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" offset :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_messages_affected_history (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xb7de36f2 && T->type->name != 0x4821c90d)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) {
+    set_autocomplete_string ("pts");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_real_len)) {
+    set_autocomplete_string ("seq");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_real_len)) {
+    set_autocomplete_string ("offset");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "offset", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_messages_all_stickers_not_modified (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x348933c1 && T->type->name != 0xcb76cc3e)) { return -1; }
+  return 0;
+}
+int store_constructor_messages_all_stickers_not_modified (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x348933c1 && T->type->name != 0xcb76cc3e)) { return -1; }
+  return 0;
+}
+int fetch_constructor_messages_all_stickers_not_modified (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x348933c1 && T->type->name != 0xcb76cc3e)) { return -1; }
+  eprintf (" messages.allStickersNotModified");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_messages_all_stickers_not_modified (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x348933c1 && T->type->name != 0xcb76cc3e)) { return -1; }
+  return 0;
+}
+int skip_constructor_messages_all_stickers (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x348933c1 && T->type->name != 0xcb76cc3e)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x12b299d4, .id = "StickerPack", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_messages_all_stickers (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x348933c1 && T->type->name != 0xcb76cc3e)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "packs", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x12b299d4, .id = "StickerPack", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "documents", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_messages_all_stickers (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x348933c1 && T->type->name != 0xcb76cc3e)) { return -1; }
+  eprintf (" messages.allStickers");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" hash :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" packs :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x12b299d4, .id = "StickerPack", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" documents :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_messages_all_stickers (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x348933c1 && T->type->name != 0xcb76cc3e)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_real_len)) {
+    set_autocomplete_string ("hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "packs", cur_token_real_len)) {
+    set_autocomplete_string ("packs");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "packs", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x12b299d4, .id = "StickerPack", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "documents", cur_token_real_len)) {
+    set_autocomplete_string ("documents");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "documents", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_messages_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x40e9002a && T->type->name != 0xbf16ffd5)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_chat (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_messages_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x40e9002a && T->type->name != 0xbf16ffd5)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "chat", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_chat (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_messages_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x40e9002a && T->type->name != 0xbf16ffd5)) { return -1; }
+  eprintf (" messages.chat");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chat :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_chat (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_messages_chat (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x40e9002a && T->type->name != 0xbf16ffd5)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "chat", cur_token_real_len)) {
+    set_autocomplete_string ("chat");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "chat", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_chat (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_messages_chat_full (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe5d7d19c && T->type->name != 0x1a282e63)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x630e61be, .id = "ChatFull", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_chat_full (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_messages_chat_full (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe5d7d19c && T->type->name != 0x1a282e63)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "full_chat", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x630e61be, .id = "ChatFull", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_chat_full (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_messages_chat_full (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe5d7d19c && T->type->name != 0x1a282e63)) { return -1; }
+  eprintf (" messages.chatFull");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" full_chat :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x630e61be, .id = "ChatFull", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_chat_full (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chats :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_messages_chat_full (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xe5d7d19c && T->type->name != 0x1a282e63)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "full_chat", cur_token_real_len)) {
+    set_autocomplete_string ("full_chat");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "full_chat", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x630e61be, .id = "ChatFull", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_chat_full (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) {
+    set_autocomplete_string ("chats");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_messages_chats (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x8150cbd8 && T->type->name != 0x7eaf3427)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_messages_chats (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x8150cbd8 && T->type->name != 0x7eaf3427)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_messages_chats (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x8150cbd8 && T->type->name != 0x7eaf3427)) { return -1; }
+  eprintf (" messages.chats");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chats :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_messages_chats (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x8150cbd8 && T->type->name != 0x7eaf3427)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) {
+    set_autocomplete_string ("chats");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_messages_dh_config_not_modified (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_messages_dh_config_not_modified (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "random", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_messages_dh_config_not_modified (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return -1; }
+  eprintf (" messages.dhConfigNotModified");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" random :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_messages_dh_config_not_modified (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "random", cur_token_real_len)) {
+    set_autocomplete_string ("random");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "random", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_messages_dh_config (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_messages_dh_config (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "g", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "p", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "random", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_messages_dh_config (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return -1; }
+  eprintf (" messages.dhConfig");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" g :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" p :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" version :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" random :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_messages_dh_config (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xecc058e8 && T->type->name != 0x133fa717)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "g", cur_token_real_len)) {
+    set_autocomplete_string ("g");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "g", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "p", cur_token_real_len)) {
+    set_autocomplete_string ("p");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "p", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_real_len)) {
+    set_autocomplete_string ("version");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "version", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "random", cur_token_real_len)) {
+    set_autocomplete_string ("random");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "random", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_messages_dialogs (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xab3a99ac, .id = "Dialog", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_messages_dialogs (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "dialogs", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xab3a99ac, .id = "Dialog", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_messages_dialogs (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return -1; }
+  eprintf (" messages.dialogs");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" dialogs :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xab3a99ac, .id = "Dialog", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" messages :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chats :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_messages_dialogs (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "dialogs", cur_token_real_len)) {
+    set_autocomplete_string ("dialogs");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "dialogs", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xab3a99ac, .id = "Dialog", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_real_len)) {
+    set_autocomplete_string ("messages");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "messages", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) {
+    set_autocomplete_string ("chats");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_messages_dialogs_slice (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xab3a99ac, .id = "Dialog", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field5) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_messages_dialogs_slice (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "count", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "dialogs", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xab3a99ac, .id = "Dialog", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field5) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_messages_dialogs_slice (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return -1; }
+  eprintf (" messages.dialogsSlice");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" count :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" dialogs :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xab3a99ac, .id = "Dialog", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" messages :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chats :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_messages_dialogs_slice (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x645af8b3 && T->type->name != 0x9ba5074c)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "count", cur_token_real_len)) {
+    set_autocomplete_string ("count");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "count", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "dialogs", cur_token_real_len)) {
+    set_autocomplete_string ("dialogs");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "dialogs", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xab3a99ac, .id = "Dialog", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_real_len)) {
+    set_autocomplete_string ("messages");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "messages", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) {
+    set_autocomplete_string ("chats");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field5) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_messages_message_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0dec25f && T->type->name != 0x3f213da0)) { return -1; }
+  return 0;
+}
+int store_constructor_messages_message_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0dec25f && T->type->name != 0x3f213da0)) { return -1; }
+  return 0;
+}
+int fetch_constructor_messages_message_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0dec25f && T->type->name != 0x3f213da0)) { return -1; }
+  eprintf (" messages.messageEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_messages_message_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0dec25f && T->type->name != 0x3f213da0)) { return -1; }
+  return 0;
+}
+int skip_constructor_messages_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0dec25f && T->type->name != 0x3f213da0)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_message (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_messages_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0dec25f && T->type->name != 0x3f213da0)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_message (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_messages_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0dec25f && T->type->name != 0x3f213da0)) { return -1; }
+  eprintf (" messages.message");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" message :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_message (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chats :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_messages_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc0dec25f && T->type->name != 0x3f213da0)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) {
+    set_autocomplete_string ("message");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_message (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) {
+    set_autocomplete_string ("chats");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_messages_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_messages_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_messages_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return -1; }
+  eprintf (" messages.messages");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" messages :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chats :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_messages_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_real_len)) {
+    set_autocomplete_string ("messages");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "messages", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) {
+    set_autocomplete_string ("chats");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_messages_messages_slice (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_messages_messages_slice (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "count", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_messages_messages_slice (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return -1; }
+  eprintf (" messages.messagesSlice");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" count :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" messages :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chats :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_messages_messages_slice (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x8735e464 && T->type->name != 0x78ca1b9b)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "count", cur_token_real_len)) {
+    set_autocomplete_string ("count");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "count", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_real_len)) {
+    set_autocomplete_string ("messages");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "messages", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) {
+    set_autocomplete_string ("chats");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_messages_sent_encrypted_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_messages_sent_encrypted_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_messages_sent_encrypted_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return -1; }
+  eprintf (" messages.sentEncryptedMessage");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_messages_sent_encrypted_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_messages_sent_encrypted_file (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_encrypted_file (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_messages_sent_encrypted_file (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_encrypted_file (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_messages_sent_encrypted_file (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return -1; }
+  eprintf (" messages.sentEncryptedFile");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" file :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_encrypted_file (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_messages_sent_encrypted_file (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xc29c7607 && T->type->name != 0x3d6389f8)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_real_len)) {
+    set_autocomplete_string ("file");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "file", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x886fd032, .id = "EncryptedFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_encrypted_file (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_messages_sent_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x382f9963 && T->type->name != 0xc7d0669c)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_messages_sent_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x382f9963 && T->type->name != 0xc7d0669c)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_messages_sent_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x382f9963 && T->type->name != 0xc7d0669c)) { return -1; }
+  eprintf (" messages.sentMessage");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" pts :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" seq :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_messages_sent_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x382f9963 && T->type->name != 0xc7d0669c)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) {
+    set_autocomplete_string ("pts");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_real_len)) {
+    set_autocomplete_string ("seq");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_messages_sent_message_link (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x382f9963 && T->type->name != 0xc7d0669c)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xeccea3f5, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field5) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_messages_sent_message_link (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x382f9963 && T->type->name != 0xc7d0669c)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "links", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xeccea3f5, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field5) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_messages_sent_message_link (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x382f9963 && T->type->name != 0xc7d0669c)) { return -1; }
+  eprintf (" messages.sentMessageLink");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" id :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" pts :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" seq :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" links :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xeccea3f5, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_messages_sent_message_link (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x382f9963 && T->type->name != 0xc7d0669c)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) {
+    set_autocomplete_string ("pts");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_real_len)) {
+    set_autocomplete_string ("seq");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "links", cur_token_real_len)) {
+    set_autocomplete_string ("links");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "links", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xeccea3f5, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field5) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_messages_stated_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x79d5cfa7 && T->type->name != 0x862a3058)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_message (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_messages_stated_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x79d5cfa7 && T->type->name != 0x862a3058)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_message (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_messages_stated_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x79d5cfa7 && T->type->name != 0x862a3058)) { return -1; }
+  eprintf (" messages.statedMessage");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" message :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_message (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chats :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" pts :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" seq :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_messages_stated_message (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x79d5cfa7 && T->type->name != 0x862a3058)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) {
+    set_autocomplete_string ("message");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_message (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) {
+    set_autocomplete_string ("chats");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) {
+    set_autocomplete_string ("pts");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_real_len)) {
+    set_autocomplete_string ("seq");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_messages_stated_message_link (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x79d5cfa7 && T->type->name != 0x862a3058)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_message (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xeccea3f5, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field6) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_messages_stated_message_link (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x79d5cfa7 && T->type->name != 0x862a3058)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_message (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "links", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xeccea3f5, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field6) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_messages_stated_message_link (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x79d5cfa7 && T->type->name != 0x862a3058)) { return -1; }
+  eprintf (" messages.statedMessageLink");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" message :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_message (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chats :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" links :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xeccea3f5, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" pts :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" seq :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_messages_stated_message_link (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x79d5cfa7 && T->type->name != 0x862a3058)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) {
+    set_autocomplete_string ("message");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_message (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) {
+    set_autocomplete_string ("chats");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "links", cur_token_real_len)) {
+    set_autocomplete_string ("links");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "links", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xeccea3f5, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) {
+    set_autocomplete_string ("pts");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_real_len)) {
+    set_autocomplete_string ("seq");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field6) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_messages_stated_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8e08d7d && T->type->name != 0x571f7282)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_messages_stated_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8e08d7d && T->type->name != 0x571f7282)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_messages_stated_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8e08d7d && T->type->name != 0x571f7282)) { return -1; }
+  eprintf (" messages.statedMessages");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" messages :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chats :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" pts :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" seq :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_messages_stated_messages (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8e08d7d && T->type->name != 0x571f7282)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_real_len)) {
+    set_autocomplete_string ("messages");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "messages", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) {
+    set_autocomplete_string ("chats");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) {
+    set_autocomplete_string ("pts");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_real_len)) {
+    set_autocomplete_string ("seq");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_messages_stated_messages_links (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8e08d7d && T->type->name != 0x571f7282)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xeccea3f5, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field6) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_messages_stated_messages_links (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8e08d7d && T->type->name != 0x571f7282)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "links", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xeccea3f5, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field6) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_messages_stated_messages_links (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8e08d7d && T->type->name != 0x571f7282)) { return -1; }
+  eprintf (" messages.statedMessagesLinks");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" messages :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chats :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" links :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xeccea3f5, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" pts :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" seq :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_messages_stated_messages_links (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa8e08d7d && T->type->name != 0x571f7282)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "messages", cur_token_real_len)) {
+    set_autocomplete_string ("messages");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "messages", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) {
+    set_autocomplete_string ("chats");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "links", cur_token_real_len)) {
+    set_autocomplete_string ("links");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "links", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xeccea3f5, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) {
+    set_autocomplete_string ("pts");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_real_len)) {
+    set_autocomplete_string ("seq");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field6) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_messages_stickers_not_modified (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return -1; }
+  return 0;
+}
+int store_constructor_messages_stickers_not_modified (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return -1; }
+  return 0;
+}
+int fetch_constructor_messages_stickers_not_modified (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return -1; }
+  eprintf (" messages.stickersNotModified");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_messages_stickers_not_modified (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return -1; }
+  return 0;
+}
+int skip_constructor_messages_stickers (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_string (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_messages_stickers (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "stickers", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_messages_stickers (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return -1; }
+  eprintf (" messages.stickers");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" hash :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_string (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" stickers :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_messages_stickers (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x7bfa5710 && T->type->name != 0x8405a8ef)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_real_len)) {
+    set_autocomplete_string ("hash");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "stickers", cur_token_real_len)) {
+    set_autocomplete_string ("stickers");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "stickers", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x51a73418, .id = "Document", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_photos_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x20212ca8 && T->type->name != 0xdfded357)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_photo (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_photos_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x20212ca8 && T->type->name != 0xdfded357)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_photo (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_photos_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x20212ca8 && T->type->name != 0xdfded357)) { return -1; }
+  eprintf (" photos.photo");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" photo :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_photo (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_photos_photo (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x20212ca8 && T->type->name != 0xdfded357)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) {
+    set_autocomplete_string ("photo");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_photo (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_photos_photos (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_photos_photos (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "photos", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_photos_photos (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return -1; }
+  eprintf (" photos.photos");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" photos :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_photos_photos (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "photos", cur_token_real_len)) {
+    set_autocomplete_string ("photos");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "photos", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_photos_photos_slice (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_photos_photos_slice (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "count", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "photos", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_photos_photos_slice (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return -1; }
+  eprintf (" photos.photosSlice");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" count :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" photos :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_photos_photos_slice (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x98cf75f1 && T->type->name != 0x67308a0e)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "count", cur_token_real_len)) {
+    set_autocomplete_string ("count");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "count", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "photos", cur_token_real_len)) {
+    set_autocomplete_string ("photos");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "photos", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x0184d57c, .id = "Photo", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_storage_file_unknown (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int store_constructor_storage_file_unknown (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int fetch_constructor_storage_file_unknown (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  eprintf (" storage.fileUnknown");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_storage_file_unknown (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int skip_constructor_storage_file_jpeg (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int store_constructor_storage_file_jpeg (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int fetch_constructor_storage_file_jpeg (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  eprintf (" storage.fileJpeg");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_storage_file_jpeg (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int skip_constructor_storage_file_gif (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int store_constructor_storage_file_gif (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int fetch_constructor_storage_file_gif (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  eprintf (" storage.fileGif");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_storage_file_gif (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int skip_constructor_storage_file_png (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int store_constructor_storage_file_png (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int fetch_constructor_storage_file_png (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  eprintf (" storage.filePng");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_storage_file_png (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int skip_constructor_storage_file_pdf (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int store_constructor_storage_file_pdf (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int fetch_constructor_storage_file_pdf (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  eprintf (" storage.filePdf");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_storage_file_pdf (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int skip_constructor_storage_file_mp3 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int store_constructor_storage_file_mp3 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int fetch_constructor_storage_file_mp3 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  eprintf (" storage.fileMp3");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_storage_file_mp3 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int skip_constructor_storage_file_mov (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int store_constructor_storage_file_mov (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int fetch_constructor_storage_file_mov (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  eprintf (" storage.fileMov");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_storage_file_mov (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int skip_constructor_storage_file_partial (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int store_constructor_storage_file_partial (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int fetch_constructor_storage_file_partial (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  eprintf (" storage.filePartial");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_storage_file_partial (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int skip_constructor_storage_file_mp4 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int store_constructor_storage_file_mp4 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int fetch_constructor_storage_file_mp4 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  eprintf (" storage.fileMp4");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_storage_file_mp4 (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int skip_constructor_storage_file_webp (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int store_constructor_storage_file_webp (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int fetch_constructor_storage_file_webp (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  eprintf (" storage.fileWebp");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_storage_file_webp (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x3e2838a8 && T->type->name != 0xc1d7c757)) { return -1; }
+  return 0;
+}
+int skip_constructor_updates_difference_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_updates_difference_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_updates_difference_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; }
+  eprintf (" updates.differenceEmpty");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" seq :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_updates_difference_empty (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_real_len)) {
+    set_autocomplete_string ("seq");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_updates_difference (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7eb21a2b, .id = "Update", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_updates_state (field6) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_updates_difference (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "new_messages", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 22 && !cur_token_quoted && !memcmp (cur_token, "new_encrypted_messages", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 13 && !cur_token_quoted && !memcmp (cur_token, "other_updates", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7eb21a2b, .id = "Update", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "state", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_updates_state (field6) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_updates_difference (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; }
+  eprintf (" updates.difference");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" new_messages :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" new_encrypted_messages :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" other_updates :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7eb21a2b, .id = "Update", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chats :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" state :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_updates_state (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_updates_difference (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "new_messages", cur_token_real_len)) {
+    set_autocomplete_string ("new_messages");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "new_messages", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 22 && !cur_token_quoted && !memcmp (cur_token, "new_encrypted_messages", cur_token_real_len)) {
+    set_autocomplete_string ("new_encrypted_messages");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 22 && !memcmp (cur_token, "new_encrypted_messages", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 13 && !cur_token_quoted && !memcmp (cur_token, "other_updates", cur_token_real_len)) {
+    set_autocomplete_string ("other_updates");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 13 && !memcmp (cur_token, "other_updates", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7eb21a2b, .id = "Update", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) {
+    set_autocomplete_string ("chats");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "state", cur_token_real_len)) {
+    set_autocomplete_string ("state");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "state", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_updates_state (field6) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_updates_difference_slice (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7eb21a2b, .id = "Update", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (skip_type_vector (field5) < 0) { return -1;}
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_updates_state (field6) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_updates_difference_slice (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "new_messages", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 22 && !cur_token_quoted && !memcmp (cur_token, "new_encrypted_messages", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 13 && !cur_token_quoted && !memcmp (cur_token, "other_updates", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7eb21a2b, .id = "Update", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field5) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 18 && !cur_token_quoted && !memcmp (cur_token, "intermediate_state", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_updates_state (field6) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_updates_difference_slice (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; }
+  eprintf (" updates.differenceSlice");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" new_messages :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" new_encrypted_messages :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" other_updates :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7eb21a2b, .id = "Update", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" chats :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" users :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (fetch_type_vector (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" intermediate_state :"); }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_updates_state (field6) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_updates_difference_slice (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xf57a2419 && T->type->name != 0x0a85dbe6)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "new_messages", cur_token_real_len)) {
+    set_autocomplete_string ("new_messages");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "new_messages", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x6b7257ff, .id = "Message", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 22 && !cur_token_quoted && !memcmp (cur_token, "new_encrypted_messages", cur_token_real_len)) {
+    set_autocomplete_string ("new_encrypted_messages");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 22 && !memcmp (cur_token, "new_encrypted_messages", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xce6b8a1e, .id = "EncryptedMessage", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 13 && !cur_token_quoted && !memcmp (cur_token, "other_updates", cur_token_real_len)) {
+    set_autocomplete_string ("other_updates");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 13 && !memcmp (cur_token, "other_updates", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7eb21a2b, .id = "Update", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "chats", cur_token_real_len)) {
+    set_autocomplete_string ("chats");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "chats", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x7bd865dc, .id = "Chat", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field5) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 18 && !cur_token_quoted && !memcmp (cur_token, "intermediate_state", cur_token_real_len)) {
+    set_autocomplete_string ("intermediate_state");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 18 && !memcmp (cur_token, "intermediate_state", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_updates_state (field6) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_updates_state (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa56c2a3e && T->type->name != 0x5a93d5c1)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field3) < 0) { return -1;}
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field4) < 0) { return -1;}
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field5) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_updates_state (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa56c2a3e && T->type->name != 0x5a93d5c1)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "qts", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "unread_count", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_updates_state (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa56c2a3e && T->type->name != 0x5a93d5c1)) { return -1; }
+  eprintf (" updates.state");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" pts :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" qts :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" date :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" seq :"); }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field4) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" unread_count :"); }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field5) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_updates_state (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0xa56c2a3e && T->type->name != 0x5a93d5c1)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) {
+    set_autocomplete_string ("pts");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "qts", cur_token_real_len)) {
+    set_autocomplete_string ("qts");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "qts", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "seq", cur_token_real_len)) {
+    set_autocomplete_string ("seq");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "seq", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "unread_count", cur_token_real_len)) {
+    set_autocomplete_string ("unread_count");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "unread_count", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return -1;}
+  return 0;
+}
+int skip_constructor_upload_file (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x096a18d5 && T->type->name != 0xf695e72a)) { return -1; }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x3e2838a8, .id = "storage.FileType", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_storage_file_type (field1) < 0) { return -1;}
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_int (field2) < 0) { return -1;}
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (skip_type_bare_bytes (field3) < 0) { return -1;}
+  return 0;
+}
+int store_constructor_upload_file (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x096a18d5 && T->type->name != 0xf695e72a)) { return -1; }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "type", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x3e2838a8, .id = "storage.FileType", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_storage_file_type (field1) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "mtime", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_len)) {
+    local_next_token ();
+    expect_token (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field3) < 0) { return -1;}
+  return 0;
+}
+int fetch_constructor_upload_file (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x096a18d5 && T->type->name != 0xf695e72a)) { return -1; }
+  eprintf (" upload.file");
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" type :"); }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x3e2838a8, .id = "storage.FileType", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_storage_file_type (field1) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" mtime :"); }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_int (field2) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  if (multiline_output >= 2) { print_offset (); }
+  if (!disable_field_names) { eprintf (" bytes :"); }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (fetch_type_bare_bytes (field3) < 0) { return -1;}
+  if (multiline_output >= 2) { eprintf ("\n"); }
+  return 0;
+}
+int autocomplete_constructor_upload_file (struct paramed_type *T) {
+  if (ODDP(T) || (T->type->name != 0x096a18d5 && T->type->name != 0xf695e72a)) { return -1; }
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "type", cur_token_real_len)) {
+    set_autocomplete_string ("type");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "type", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x3e2838a8, .id = "storage.FileType", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_storage_file_type (field1) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "mtime", cur_token_real_len)) {
+    set_autocomplete_string ("mtime");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "mtime", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return -1;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_real_len)) {
+    set_autocomplete_string ("bytes");
+    return -1;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "bytes", cur_token_len)) {
+    local_next_token ();
+    expect_token_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field3) < 0) { return -1;}
+  return 0;
+}
+int skip_type_account_days_t_t_l (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xb8d0afdf: return skip_constructor_account_days_t_t_l (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_account_days_t_t_l (struct paramed_type *T) {
+  if (skip_constructor_account_days_t_t_l (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_account_days_t_t_l (struct paramed_type *T) {
+    out_int (0xb8d0afdf);
+  if (store_constructor_account_days_t_t_l (T) < 0) { return -1; }
+  return 0;
+}
+int store_type_bare_account_days_t_t_l (struct paramed_type *T) {
+  if (store_constructor_account_days_t_t_l (T) < 0) { return -1; }
+  return 0;
+}
+int fetch_type_account_days_t_t_l (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xb8d0afdf: res = fetch_constructor_account_days_t_t_l (T); break;
+  default: return -1;
+  }
+  return res;
+}
+int fetch_type_bare_account_days_t_t_l (struct paramed_type *T) {
+  if (fetch_constructor_account_days_t_t_l (T) >= 0) { return 0; }
+  return -1;
+}
+int autocomplete_type_account_days_t_t_l (struct paramed_type *T) {
+  if (autocomplete_constructor_account_days_t_t_l (T) < 0) { return -1; }
+  return 0;
+}
+int autocomplete_type_bare_account_days_t_t_l (struct paramed_type *T) {
+  if (autocomplete_constructor_account_days_t_t_l (T) < 0) { return -1; }
+  return 0;
+}
+int do_autocomplete_type_account_days_t_t_l (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "accountDaysTTL", text_len)) { *R = tstrdup ("accountDaysTTL"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_audio (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x586988d8: return skip_constructor_audio_empty (T);
+  case 0xc7ac6496: return skip_constructor_audio (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_audio (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_audio_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_audio (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_audio (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 10 && !memcmp (cur_token, "audioEmpty", cur_token_len)) {
+    out_int (0x586988d8);
+    local_next_token ();
+    if (store_constructor_audio_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 5 && !memcmp (cur_token, "audio", cur_token_len)) {
+    out_int (0xc7ac6496);
+    local_next_token ();
+    if (store_constructor_audio (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_audio (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 10 && !memcmp (cur_token, "audioEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_audio_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 5 && !memcmp (cur_token, "audio", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_audio (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_audio (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x586988d8: res = fetch_constructor_audio_empty (T); break;
+  case 0xc7ac6496: res = fetch_constructor_audio (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_audio (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_audio_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_audio_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_audio (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_audio (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_audio (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_audio); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 10 && !memcmp (cur_token, "audioEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_audio_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 5 && !memcmp (cur_token, "audio", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_audio (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_audio (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_audio); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 10 && !memcmp (cur_token, "audioEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_audio_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 5 && !memcmp (cur_token, "audio", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_audio (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_audio (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "audioEmpty", text_len)) { *R = tstrdup ("audioEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "audio", text_len)) { *R = tstrdup ("audio"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_bool (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xbc799737: return skip_constructor_bool_false (T);
+  case 0x997275b5: return skip_constructor_bool_true (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_bool (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_bool_false (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_bool_true (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_bool (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "boolFalse", cur_token_len)) {
+    out_int (0xbc799737);
+    local_next_token ();
+    if (store_constructor_bool_false (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 8 && !memcmp (cur_token, "boolTrue", cur_token_len)) {
+    out_int (0x997275b5);
+    local_next_token ();
+    if (store_constructor_bool_true (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_bool (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "boolFalse", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_bool_false (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 8 && !memcmp (cur_token, "boolTrue", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_bool_true (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_bool (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xbc799737: res = fetch_constructor_bool_false (T); break;
+  case 0x997275b5: res = fetch_constructor_bool_true (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_bool (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_bool_false (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_bool_false (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_bool_true (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_bool_true (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_bool (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_bool); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "boolFalse", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_bool_false (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 8 && !memcmp (cur_token, "boolTrue", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_bool_true (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_bool (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_bool); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "boolFalse", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_bool_false (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 8 && !memcmp (cur_token, "boolTrue", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_bool_true (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_bool (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "boolFalse", text_len)) { *R = tstrdup ("boolFalse"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "boolTrue", text_len)) { *R = tstrdup ("boolTrue"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_bytes (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x0ee1379f: return skip_constructor_bytes (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_bytes (struct paramed_type *T) {
+  if (skip_constructor_bytes (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_bytes (struct paramed_type *T) {
+    out_int (0x0ee1379f);
+  if (store_constructor_bytes (T) < 0) { return -1; }
+  return 0;
+}
+int store_type_bare_bytes (struct paramed_type *T) {
+  if (store_constructor_bytes (T) < 0) { return -1; }
+  return 0;
+}
+int fetch_type_bytes (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x0ee1379f: res = fetch_constructor_bytes (T); break;
+  default: return -1;
+  }
+  return res;
+}
+int fetch_type_bare_bytes (struct paramed_type *T) {
+  if (fetch_constructor_bytes (T) >= 0) { return 0; }
+  return -1;
+}
+int autocomplete_type_bytes (struct paramed_type *T) {
+  if (autocomplete_constructor_bytes (T) < 0) { return -1; }
+  return 0;
+}
+int autocomplete_type_bare_bytes (struct paramed_type *T) {
+  if (autocomplete_constructor_bytes (T) < 0) { return -1; }
+  return 0;
+}
+int do_autocomplete_type_bytes (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "bytes", text_len)) { *R = tstrdup ("bytes"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_chat (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x9ba2d800: return skip_constructor_chat_empty (T);
+  case 0x6e9c9bc7: return skip_constructor_chat (T);
+  case 0xfb0ccc41: return skip_constructor_chat_forbidden (T);
+  case 0x75eaea5a: return skip_constructor_geo_chat (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_chat (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_chat_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_chat (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_chat_forbidden (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_geo_chat (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_chat (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "chatEmpty", cur_token_len)) {
+    out_int (0x9ba2d800);
+    local_next_token ();
+    if (store_constructor_chat_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 4 && !memcmp (cur_token, "chat", cur_token_len)) {
+    out_int (0x6e9c9bc7);
+    local_next_token ();
+    if (store_constructor_chat (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "chatForbidden", cur_token_len)) {
+    out_int (0xfb0ccc41);
+    local_next_token ();
+    if (store_constructor_chat_forbidden (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 7 && !memcmp (cur_token, "geoChat", cur_token_len)) {
+    out_int (0x75eaea5a);
+    local_next_token ();
+    if (store_constructor_geo_chat (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_chat (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "chatEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_chat_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 4 && !memcmp (cur_token, "chat", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_chat (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "chatForbidden", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_chat_forbidden (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 7 && !memcmp (cur_token, "geoChat", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_geo_chat (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_chat (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x9ba2d800: res = fetch_constructor_chat_empty (T); break;
+  case 0x6e9c9bc7: res = fetch_constructor_chat (T); break;
+  case 0xfb0ccc41: res = fetch_constructor_chat_forbidden (T); break;
+  case 0x75eaea5a: res = fetch_constructor_geo_chat (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_chat (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_chat_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_chat_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_chat (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_chat (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_chat_forbidden (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_chat_forbidden (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_geo_chat (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_geo_chat (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_chat (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "chatEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_chat_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 4 && !memcmp (cur_token, "chat", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_chat (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "chatForbidden", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_chat_forbidden (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 7 && !memcmp (cur_token, "geoChat", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_geo_chat (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_chat (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "chatEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_chat_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 4 && !memcmp (cur_token, "chat", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_chat (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "chatForbidden", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_chat_forbidden (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 7 && !memcmp (cur_token, "geoChat", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_geo_chat (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_chat (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "chatEmpty", text_len)) { *R = tstrdup ("chatEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "chat", text_len)) { *R = tstrdup ("chat"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "chatForbidden", text_len)) { *R = tstrdup ("chatForbidden"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "geoChat", text_len)) { *R = tstrdup ("geoChat"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_chat_full (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x630e61be: return skip_constructor_chat_full (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_chat_full (struct paramed_type *T) {
+  if (skip_constructor_chat_full (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_chat_full (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 8 && !memcmp (cur_token, "chatFull", cur_token_len)) {
+    out_int (0x630e61be);
+    local_next_token ();
+    if (store_constructor_chat_full (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_chat_full (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 8 && !memcmp (cur_token, "chatFull", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_chat_full (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_chat_full (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x630e61be: res = fetch_constructor_chat_full (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_chat_full (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_chat_full (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_chat_full (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat_full); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 8 && !memcmp (cur_token, "chatFull", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_chat_full (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_chat_full (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat_full); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 8 && !memcmp (cur_token, "chatFull", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_chat_full (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_chat_full (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "chatFull", text_len)) { *R = tstrdup ("chatFull"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_chat_located (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x3631cf4c: return skip_constructor_chat_located (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_chat_located (struct paramed_type *T) {
+  if (skip_constructor_chat_located (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_chat_located (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 11 && !memcmp (cur_token, "chatLocated", cur_token_len)) {
+    out_int (0x3631cf4c);
+    local_next_token ();
+    if (store_constructor_chat_located (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_chat_located (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 11 && !memcmp (cur_token, "chatLocated", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_chat_located (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_chat_located (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x3631cf4c: res = fetch_constructor_chat_located (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_chat_located (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_chat_located (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_chat_located (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat_located); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 11 && !memcmp (cur_token, "chatLocated", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_chat_located (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_chat_located (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat_located); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 11 && !memcmp (cur_token, "chatLocated", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_chat_located (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_chat_located (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "chatLocated", text_len)) { *R = tstrdup ("chatLocated"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_chat_participant (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xc8d7493e: return skip_constructor_chat_participant (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_chat_participant (struct paramed_type *T) {
+  if (skip_constructor_chat_participant (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_chat_participant (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "chatParticipant", cur_token_len)) {
+    out_int (0xc8d7493e);
+    local_next_token ();
+    if (store_constructor_chat_participant (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_chat_participant (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "chatParticipant", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_chat_participant (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_chat_participant (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xc8d7493e: res = fetch_constructor_chat_participant (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_chat_participant (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_chat_participant (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_chat_participant (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat_participant); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "chatParticipant", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_chat_participant (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_chat_participant (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat_participant); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "chatParticipant", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_chat_participant (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_chat_participant (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "chatParticipant", text_len)) { *R = tstrdup ("chatParticipant"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_chat_participants (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x0fd2bb8a: return skip_constructor_chat_participants_forbidden (T);
+  case 0x7841b415: return skip_constructor_chat_participants (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_chat_participants (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_chat_participants_forbidden (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_chat_participants (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_chat_participants (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 25 && !memcmp (cur_token, "chatParticipantsForbidden", cur_token_len)) {
+    out_int (0x0fd2bb8a);
+    local_next_token ();
+    if (store_constructor_chat_participants_forbidden (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "chatParticipants", cur_token_len)) {
+    out_int (0x7841b415);
+    local_next_token ();
+    if (store_constructor_chat_participants (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_chat_participants (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 25 && !memcmp (cur_token, "chatParticipantsForbidden", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_chat_participants_forbidden (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "chatParticipants", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_chat_participants (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_chat_participants (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x0fd2bb8a: res = fetch_constructor_chat_participants_forbidden (T); break;
+  case 0x7841b415: res = fetch_constructor_chat_participants (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_chat_participants (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_chat_participants_forbidden (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_chat_participants_forbidden (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_chat_participants (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_chat_participants (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_chat_participants (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat_participants); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 25 && !memcmp (cur_token, "chatParticipantsForbidden", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_chat_participants_forbidden (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "chatParticipants", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_chat_participants (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_chat_participants (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat_participants); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 25 && !memcmp (cur_token, "chatParticipantsForbidden", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_chat_participants_forbidden (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "chatParticipants", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_chat_participants (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_chat_participants (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "chatParticipantsForbidden", text_len)) { *R = tstrdup ("chatParticipantsForbidden"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "chatParticipants", text_len)) { *R = tstrdup ("chatParticipants"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_chat_photo (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x37c1011c: return skip_constructor_chat_photo_empty (T);
+  case 0x6153276a: return skip_constructor_chat_photo (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_chat_photo (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_chat_photo_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_chat_photo (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_chat_photo (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "chatPhotoEmpty", cur_token_len)) {
+    out_int (0x37c1011c);
+    local_next_token ();
+    if (store_constructor_chat_photo_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 9 && !memcmp (cur_token, "chatPhoto", cur_token_len)) {
+    out_int (0x6153276a);
+    local_next_token ();
+    if (store_constructor_chat_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_chat_photo (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "chatPhotoEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_chat_photo_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 9 && !memcmp (cur_token, "chatPhoto", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_chat_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_chat_photo (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x37c1011c: res = fetch_constructor_chat_photo_empty (T); break;
+  case 0x6153276a: res = fetch_constructor_chat_photo (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_chat_photo (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_chat_photo_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_chat_photo_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_chat_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_chat_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_chat_photo (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat_photo); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "chatPhotoEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_chat_photo_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 9 && !memcmp (cur_token, "chatPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_chat_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_chat_photo (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_chat_photo); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "chatPhotoEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_chat_photo_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 9 && !memcmp (cur_token, "chatPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_chat_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_chat_photo (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "chatPhotoEmpty", text_len)) { *R = tstrdup ("chatPhotoEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "chatPhoto", text_len)) { *R = tstrdup ("chatPhoto"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_client_d_h_inner_data (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x6643b654: return skip_constructor_client_d_h_inner_data (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_client_d_h_inner_data (struct paramed_type *T) {
+  if (skip_constructor_client_d_h_inner_data (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_client_d_h_inner_data (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 20 && !memcmp (cur_token, "client_DH_inner_data", cur_token_len)) {
+    out_int (0x6643b654);
+    local_next_token ();
+    if (store_constructor_client_d_h_inner_data (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_client_d_h_inner_data (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 20 && !memcmp (cur_token, "client_DH_inner_data", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_client_d_h_inner_data (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_client_d_h_inner_data (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x6643b654: res = fetch_constructor_client_d_h_inner_data (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_client_d_h_inner_data (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_client_d_h_inner_data (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_client_d_h_inner_data (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_client_d_h_inner_data); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 20 && !memcmp (cur_token, "client_DH_inner_data", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_client_d_h_inner_data (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_client_d_h_inner_data (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_client_d_h_inner_data); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 20 && !memcmp (cur_token, "client_DH_inner_data", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_client_d_h_inner_data (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_client_d_h_inner_data (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "client_DH_inner_data", text_len)) { *R = tstrdup ("client_DH_inner_data"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_config (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x2e54dd74: return skip_constructor_config (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_config (struct paramed_type *T) {
+  if (skip_constructor_config (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_config (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 6 && !memcmp (cur_token, "config", cur_token_len)) {
+    out_int (0x2e54dd74);
+    local_next_token ();
+    if (store_constructor_config (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_config (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 6 && !memcmp (cur_token, "config", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_config (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_config (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x2e54dd74: res = fetch_constructor_config (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_config (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_config (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_config (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_config); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 6 && !memcmp (cur_token, "config", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_config (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_config (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_config); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 6 && !memcmp (cur_token, "config", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_config (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_config (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "config", text_len)) { *R = tstrdup ("config"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_contact (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xf911c994: return skip_constructor_contact (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_contact (struct paramed_type *T) {
+  if (skip_constructor_contact (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_contact (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 7 && !memcmp (cur_token, "contact", cur_token_len)) {
+    out_int (0xf911c994);
+    local_next_token ();
+    if (store_constructor_contact (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_contact (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 7 && !memcmp (cur_token, "contact", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_contact (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_contact (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xf911c994: res = fetch_constructor_contact (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_contact (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_contact (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_contact (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contact); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 7 && !memcmp (cur_token, "contact", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contact (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_contact (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contact); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 7 && !memcmp (cur_token, "contact", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contact (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_contact (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "contact", text_len)) { *R = tstrdup ("contact"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_contact_blocked (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x561bc879: return skip_constructor_contact_blocked (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_contact_blocked (struct paramed_type *T) {
+  if (skip_constructor_contact_blocked (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_contact_blocked (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "contactBlocked", cur_token_len)) {
+    out_int (0x561bc879);
+    local_next_token ();
+    if (store_constructor_contact_blocked (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_contact_blocked (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "contactBlocked", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_contact_blocked (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_contact_blocked (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x561bc879: res = fetch_constructor_contact_blocked (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_contact_blocked (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_contact_blocked (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_contact_blocked (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contact_blocked); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "contactBlocked", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contact_blocked (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_contact_blocked (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contact_blocked); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "contactBlocked", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contact_blocked (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_contact_blocked (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "contactBlocked", text_len)) { *R = tstrdup ("contactBlocked"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_contact_found (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xea879f95: return skip_constructor_contact_found (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_contact_found (struct paramed_type *T) {
+  if (skip_constructor_contact_found (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_contact_found (struct paramed_type *T) {
+    out_int (0xea879f95);
+  if (store_constructor_contact_found (T) < 0) { return -1; }
+  return 0;
+}
+int store_type_bare_contact_found (struct paramed_type *T) {
+  if (store_constructor_contact_found (T) < 0) { return -1; }
+  return 0;
+}
+int fetch_type_contact_found (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xea879f95: res = fetch_constructor_contact_found (T); break;
+  default: return -1;
+  }
+  return res;
+}
+int fetch_type_bare_contact_found (struct paramed_type *T) {
+  if (fetch_constructor_contact_found (T) >= 0) { return 0; }
+  return -1;
+}
+int autocomplete_type_contact_found (struct paramed_type *T) {
+  if (autocomplete_constructor_contact_found (T) < 0) { return -1; }
+  return 0;
+}
+int autocomplete_type_bare_contact_found (struct paramed_type *T) {
+  if (autocomplete_constructor_contact_found (T) < 0) { return -1; }
+  return 0;
+}
+int do_autocomplete_type_contact_found (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "contactFound", text_len)) { *R = tstrdup ("contactFound"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_contact_status (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xd3680c61: return skip_constructor_contact_status (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_contact_status (struct paramed_type *T) {
+  if (skip_constructor_contact_status (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_contact_status (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "contactStatus", cur_token_len)) {
+    out_int (0xd3680c61);
+    local_next_token ();
+    if (store_constructor_contact_status (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_contact_status (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "contactStatus", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_contact_status (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_contact_status (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xd3680c61: res = fetch_constructor_contact_status (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_contact_status (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_contact_status (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_contact_status (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contact_status); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "contactStatus", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contact_status (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_contact_status (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contact_status); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "contactStatus", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contact_status (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_contact_status (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "contactStatus", text_len)) { *R = tstrdup ("contactStatus"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_contact_suggested (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x3de191a1: return skip_constructor_contact_suggested (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_contact_suggested (struct paramed_type *T) {
+  if (skip_constructor_contact_suggested (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_contact_suggested (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 16 && !memcmp (cur_token, "contactSuggested", cur_token_len)) {
+    out_int (0x3de191a1);
+    local_next_token ();
+    if (store_constructor_contact_suggested (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_contact_suggested (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 16 && !memcmp (cur_token, "contactSuggested", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_contact_suggested (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_contact_suggested (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x3de191a1: res = fetch_constructor_contact_suggested (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_contact_suggested (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_contact_suggested (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_contact_suggested (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contact_suggested); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 16 && !memcmp (cur_token, "contactSuggested", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contact_suggested (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_contact_suggested (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contact_suggested); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 16 && !memcmp (cur_token, "contactSuggested", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contact_suggested (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_contact_suggested (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "contactSuggested", text_len)) { *R = tstrdup ("contactSuggested"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_dc_option (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x2ec2a43c: return skip_constructor_dc_option (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_dc_option (struct paramed_type *T) {
+  if (skip_constructor_dc_option (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_dc_option (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 8 && !memcmp (cur_token, "dcOption", cur_token_len)) {
+    out_int (0x2ec2a43c);
+    local_next_token ();
+    if (store_constructor_dc_option (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_dc_option (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 8 && !memcmp (cur_token, "dcOption", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_dc_option (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_dc_option (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x2ec2a43c: res = fetch_constructor_dc_option (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_dc_option (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_dc_option (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_dc_option (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_dc_option); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 8 && !memcmp (cur_token, "dcOption", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_dc_option (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_dc_option (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_dc_option); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 8 && !memcmp (cur_token, "dcOption", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_dc_option (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_dc_option (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "dcOption", text_len)) { *R = tstrdup ("dcOption"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_decrypted_message (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x1f814f1f: return skip_constructor_decrypted_message_l16 (T);
+  case 0xaa48327d: return skip_constructor_decrypted_message_service_l16 (T);
+  case 0x204d3878: return skip_constructor_decrypted_message (T);
+  case 0x73164160: return skip_constructor_decrypted_message_service (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_decrypted_message (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_decrypted_message_l16 (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_service_l16 (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_service (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_decrypted_message (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 20 && !memcmp (cur_token, "decryptedMessage_l16", cur_token_len)) {
+    out_int (0x1f814f1f);
+    local_next_token ();
+    if (store_constructor_decrypted_message_l16 (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "decryptedMessageService_l16", cur_token_len)) {
+    out_int (0xaa48327d);
+    local_next_token ();
+    if (store_constructor_decrypted_message_service_l16 (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "decryptedMessage", cur_token_len)) {
+    out_int (0x204d3878);
+    local_next_token ();
+    if (store_constructor_decrypted_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "decryptedMessageService", cur_token_len)) {
+    out_int (0x73164160);
+    local_next_token ();
+    if (store_constructor_decrypted_message_service (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_decrypted_message (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 20 && !memcmp (cur_token, "decryptedMessage_l16", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_decrypted_message_l16 (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "decryptedMessageService_l16", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_decrypted_message_service_l16 (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "decryptedMessage", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_decrypted_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "decryptedMessageService", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_decrypted_message_service (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_decrypted_message (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x1f814f1f: res = fetch_constructor_decrypted_message_l16 (T); break;
+  case 0xaa48327d: res = fetch_constructor_decrypted_message_service_l16 (T); break;
+  case 0x204d3878: res = fetch_constructor_decrypted_message (T); break;
+  case 0x73164160: res = fetch_constructor_decrypted_message_service (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_decrypted_message (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_decrypted_message_l16 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_l16 (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_service_l16 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_service_l16 (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_service (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_service (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_decrypted_message (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_decrypted_message); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 20 && !memcmp (cur_token, "decryptedMessage_l16", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_l16 (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "decryptedMessageService_l16", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_service_l16 (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "decryptedMessage", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "decryptedMessageService", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_service (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_decrypted_message (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_decrypted_message); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 20 && !memcmp (cur_token, "decryptedMessage_l16", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_l16 (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "decryptedMessageService_l16", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_service_l16 (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "decryptedMessage", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "decryptedMessageService", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_service (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_decrypted_message (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "decryptedMessage_l16", text_len)) { *R = tstrdup ("decryptedMessage_l16"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "decryptedMessageService_l16", text_len)) { *R = tstrdup ("decryptedMessageService_l16"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "decryptedMessage", text_len)) { *R = tstrdup ("decryptedMessage"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "decryptedMessageService", text_len)) { *R = tstrdup ("decryptedMessageService"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_decrypted_message_action (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xa1733aec: return skip_constructor_decrypted_message_action_set_message_t_t_l (T);
+  case 0x0c4f40be: return skip_constructor_decrypted_message_action_read_messages (T);
+  case 0x65614304: return skip_constructor_decrypted_message_action_delete_messages (T);
+  case 0x8ac1f475: return skip_constructor_decrypted_message_action_screenshot_messages (T);
+  case 0x6719e45c: return skip_constructor_decrypted_message_action_flush_history (T);
+  case 0xf3048883: return skip_constructor_decrypted_message_action_notify_layer (T);
+  case 0x511110b0: return skip_constructor_decrypted_message_action_resend (T);
+  case 0xccb27641: return skip_constructor_decrypted_message_action_typing (T);
+  case 0xf3c9611b: return skip_constructor_decrypted_message_action_request_key (T);
+  case 0x6fe1735b: return skip_constructor_decrypted_message_action_accept_key (T);
+  case 0xec2e0b9b: return skip_constructor_decrypted_message_action_commit_key (T);
+  case 0xdd05ec6b: return skip_constructor_decrypted_message_action_abort_key (T);
+  case 0xa82fdd63: return skip_constructor_decrypted_message_action_noop (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_decrypted_message_action (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_decrypted_message_action_set_message_t_t_l (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_action_read_messages (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_action_delete_messages (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_action_screenshot_messages (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_action_flush_history (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_action_notify_layer (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_action_resend (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_action_typing (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_action_request_key (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_action_accept_key (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_action_commit_key (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_action_abort_key (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_action_noop (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_decrypted_message_action (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 35 && !memcmp (cur_token, "decryptedMessageActionSetMessageTTL", cur_token_len)) {
+    out_int (0xa1733aec);
+    local_next_token ();
+    if (store_constructor_decrypted_message_action_set_message_t_t_l (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 34 && !memcmp (cur_token, "decryptedMessageActionReadMessages", cur_token_len)) {
+    out_int (0x0c4f40be);
+    local_next_token ();
+    if (store_constructor_decrypted_message_action_read_messages (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 36 && !memcmp (cur_token, "decryptedMessageActionDeleteMessages", cur_token_len)) {
+    out_int (0x65614304);
+    local_next_token ();
+    if (store_constructor_decrypted_message_action_delete_messages (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 40 && !memcmp (cur_token, "decryptedMessageActionScreenshotMessages", cur_token_len)) {
+    out_int (0x8ac1f475);
+    local_next_token ();
+    if (store_constructor_decrypted_message_action_screenshot_messages (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 34 && !memcmp (cur_token, "decryptedMessageActionFlushHistory", cur_token_len)) {
+    out_int (0x6719e45c);
+    local_next_token ();
+    if (store_constructor_decrypted_message_action_flush_history (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 33 && !memcmp (cur_token, "decryptedMessageActionNotifyLayer", cur_token_len)) {
+    out_int (0xf3048883);
+    local_next_token ();
+    if (store_constructor_decrypted_message_action_notify_layer (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "decryptedMessageActionResend", cur_token_len)) {
+    out_int (0x511110b0);
+    local_next_token ();
+    if (store_constructor_decrypted_message_action_resend (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "decryptedMessageActionTyping", cur_token_len)) {
+    out_int (0xccb27641);
+    local_next_token ();
+    if (store_constructor_decrypted_message_action_typing (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 32 && !memcmp (cur_token, "decryptedMessageActionRequestKey", cur_token_len)) {
+    out_int (0xf3c9611b);
+    local_next_token ();
+    if (store_constructor_decrypted_message_action_request_key (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 31 && !memcmp (cur_token, "decryptedMessageActionAcceptKey", cur_token_len)) {
+    out_int (0x6fe1735b);
+    local_next_token ();
+    if (store_constructor_decrypted_message_action_accept_key (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 31 && !memcmp (cur_token, "decryptedMessageActionCommitKey", cur_token_len)) {
+    out_int (0xec2e0b9b);
+    local_next_token ();
+    if (store_constructor_decrypted_message_action_commit_key (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 30 && !memcmp (cur_token, "decryptedMessageActionAbortKey", cur_token_len)) {
+    out_int (0xdd05ec6b);
+    local_next_token ();
+    if (store_constructor_decrypted_message_action_abort_key (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageActionNoop", cur_token_len)) {
+    out_int (0xa82fdd63);
+    local_next_token ();
+    if (store_constructor_decrypted_message_action_noop (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_decrypted_message_action (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 35 && !memcmp (cur_token, "decryptedMessageActionSetMessageTTL", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_decrypted_message_action_set_message_t_t_l (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 34 && !memcmp (cur_token, "decryptedMessageActionReadMessages", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_decrypted_message_action_read_messages (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 36 && !memcmp (cur_token, "decryptedMessageActionDeleteMessages", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_decrypted_message_action_delete_messages (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 40 && !memcmp (cur_token, "decryptedMessageActionScreenshotMessages", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_decrypted_message_action_screenshot_messages (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 34 && !memcmp (cur_token, "decryptedMessageActionFlushHistory", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_decrypted_message_action_flush_history (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 33 && !memcmp (cur_token, "decryptedMessageActionNotifyLayer", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_decrypted_message_action_notify_layer (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "decryptedMessageActionResend", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_decrypted_message_action_resend (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "decryptedMessageActionTyping", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_decrypted_message_action_typing (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 32 && !memcmp (cur_token, "decryptedMessageActionRequestKey", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_decrypted_message_action_request_key (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 31 && !memcmp (cur_token, "decryptedMessageActionAcceptKey", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_decrypted_message_action_accept_key (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 31 && !memcmp (cur_token, "decryptedMessageActionCommitKey", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_decrypted_message_action_commit_key (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 30 && !memcmp (cur_token, "decryptedMessageActionAbortKey", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_decrypted_message_action_abort_key (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageActionNoop", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_decrypted_message_action_noop (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_decrypted_message_action (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xa1733aec: res = fetch_constructor_decrypted_message_action_set_message_t_t_l (T); break;
+  case 0x0c4f40be: res = fetch_constructor_decrypted_message_action_read_messages (T); break;
+  case 0x65614304: res = fetch_constructor_decrypted_message_action_delete_messages (T); break;
+  case 0x8ac1f475: res = fetch_constructor_decrypted_message_action_screenshot_messages (T); break;
+  case 0x6719e45c: res = fetch_constructor_decrypted_message_action_flush_history (T); break;
+  case 0xf3048883: res = fetch_constructor_decrypted_message_action_notify_layer (T); break;
+  case 0x511110b0: res = fetch_constructor_decrypted_message_action_resend (T); break;
+  case 0xccb27641: res = fetch_constructor_decrypted_message_action_typing (T); break;
+  case 0xf3c9611b: res = fetch_constructor_decrypted_message_action_request_key (T); break;
+  case 0x6fe1735b: res = fetch_constructor_decrypted_message_action_accept_key (T); break;
+  case 0xec2e0b9b: res = fetch_constructor_decrypted_message_action_commit_key (T); break;
+  case 0xdd05ec6b: res = fetch_constructor_decrypted_message_action_abort_key (T); break;
+  case 0xa82fdd63: res = fetch_constructor_decrypted_message_action_noop (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_decrypted_message_action (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_decrypted_message_action_set_message_t_t_l (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_action_set_message_t_t_l (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_action_read_messages (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_action_read_messages (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_action_delete_messages (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_action_delete_messages (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_action_screenshot_messages (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_action_screenshot_messages (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_action_flush_history (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_action_flush_history (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_action_notify_layer (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_action_notify_layer (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_action_resend (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_action_resend (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_action_typing (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_action_typing (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_action_request_key (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_action_request_key (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_action_accept_key (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_action_accept_key (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_action_commit_key (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_action_commit_key (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_action_abort_key (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_action_abort_key (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_action_noop (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_action_noop (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_decrypted_message_action (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_decrypted_message_action); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 35 && !memcmp (cur_token, "decryptedMessageActionSetMessageTTL", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_action_set_message_t_t_l (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 34 && !memcmp (cur_token, "decryptedMessageActionReadMessages", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_action_read_messages (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 36 && !memcmp (cur_token, "decryptedMessageActionDeleteMessages", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_action_delete_messages (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 40 && !memcmp (cur_token, "decryptedMessageActionScreenshotMessages", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_action_screenshot_messages (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 34 && !memcmp (cur_token, "decryptedMessageActionFlushHistory", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_action_flush_history (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 33 && !memcmp (cur_token, "decryptedMessageActionNotifyLayer", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_action_notify_layer (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "decryptedMessageActionResend", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_action_resend (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "decryptedMessageActionTyping", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_action_typing (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 32 && !memcmp (cur_token, "decryptedMessageActionRequestKey", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_action_request_key (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 31 && !memcmp (cur_token, "decryptedMessageActionAcceptKey", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_action_accept_key (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 31 && !memcmp (cur_token, "decryptedMessageActionCommitKey", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_action_commit_key (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 30 && !memcmp (cur_token, "decryptedMessageActionAbortKey", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_action_abort_key (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageActionNoop", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_action_noop (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_decrypted_message_action (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_decrypted_message_action); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 35 && !memcmp (cur_token, "decryptedMessageActionSetMessageTTL", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_action_set_message_t_t_l (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 34 && !memcmp (cur_token, "decryptedMessageActionReadMessages", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_action_read_messages (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 36 && !memcmp (cur_token, "decryptedMessageActionDeleteMessages", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_action_delete_messages (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 40 && !memcmp (cur_token, "decryptedMessageActionScreenshotMessages", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_action_screenshot_messages (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 34 && !memcmp (cur_token, "decryptedMessageActionFlushHistory", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_action_flush_history (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 33 && !memcmp (cur_token, "decryptedMessageActionNotifyLayer", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_action_notify_layer (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "decryptedMessageActionResend", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_action_resend (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "decryptedMessageActionTyping", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_action_typing (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 32 && !memcmp (cur_token, "decryptedMessageActionRequestKey", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_action_request_key (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 31 && !memcmp (cur_token, "decryptedMessageActionAcceptKey", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_action_accept_key (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 31 && !memcmp (cur_token, "decryptedMessageActionCommitKey", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_action_commit_key (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 30 && !memcmp (cur_token, "decryptedMessageActionAbortKey", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_action_abort_key (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageActionNoop", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_action_noop (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_decrypted_message_action (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "decryptedMessageActionSetMessageTTL", text_len)) { *R = tstrdup ("decryptedMessageActionSetMessageTTL"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "decryptedMessageActionReadMessages", text_len)) { *R = tstrdup ("decryptedMessageActionReadMessages"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "decryptedMessageActionDeleteMessages", text_len)) { *R = tstrdup ("decryptedMessageActionDeleteMessages"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "decryptedMessageActionScreenshotMessages", text_len)) { *R = tstrdup ("decryptedMessageActionScreenshotMessages"); return index; } else { index ++; }}
+  if (index == 4) { if (!strncmp (text, "decryptedMessageActionFlushHistory", text_len)) { *R = tstrdup ("decryptedMessageActionFlushHistory"); return index; } else { index ++; }}
+  if (index == 5) { if (!strncmp (text, "decryptedMessageActionNotifyLayer", text_len)) { *R = tstrdup ("decryptedMessageActionNotifyLayer"); return index; } else { index ++; }}
+  if (index == 6) { if (!strncmp (text, "decryptedMessageActionResend", text_len)) { *R = tstrdup ("decryptedMessageActionResend"); return index; } else { index ++; }}
+  if (index == 7) { if (!strncmp (text, "decryptedMessageActionTyping", text_len)) { *R = tstrdup ("decryptedMessageActionTyping"); return index; } else { index ++; }}
+  if (index == 8) { if (!strncmp (text, "decryptedMessageActionRequestKey", text_len)) { *R = tstrdup ("decryptedMessageActionRequestKey"); return index; } else { index ++; }}
+  if (index == 9) { if (!strncmp (text, "decryptedMessageActionAcceptKey", text_len)) { *R = tstrdup ("decryptedMessageActionAcceptKey"); return index; } else { index ++; }}
+  if (index == 10) { if (!strncmp (text, "decryptedMessageActionCommitKey", text_len)) { *R = tstrdup ("decryptedMessageActionCommitKey"); return index; } else { index ++; }}
+  if (index == 11) { if (!strncmp (text, "decryptedMessageActionAbortKey", text_len)) { *R = tstrdup ("decryptedMessageActionAbortKey"); return index; } else { index ++; }}
+  if (index == 12) { if (!strncmp (text, "decryptedMessageActionNoop", text_len)) { *R = tstrdup ("decryptedMessageActionNoop"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_decrypted_message_layer (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x1be31789: return skip_constructor_decrypted_message_layer (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_decrypted_message_layer (struct paramed_type *T) {
+  if (skip_constructor_decrypted_message_layer (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_decrypted_message_layer (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 21 && !memcmp (cur_token, "decryptedMessageLayer", cur_token_len)) {
+    out_int (0x1be31789);
+    local_next_token ();
+    if (store_constructor_decrypted_message_layer (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_decrypted_message_layer (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 21 && !memcmp (cur_token, "decryptedMessageLayer", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_decrypted_message_layer (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_decrypted_message_layer (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x1be31789: res = fetch_constructor_decrypted_message_layer (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_decrypted_message_layer (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_decrypted_message_layer (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_decrypted_message_layer (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_decrypted_message_layer); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 21 && !memcmp (cur_token, "decryptedMessageLayer", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_layer (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_decrypted_message_layer (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_decrypted_message_layer); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 21 && !memcmp (cur_token, "decryptedMessageLayer", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_layer (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_decrypted_message_layer (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "decryptedMessageLayer", text_len)) { *R = tstrdup ("decryptedMessageLayer"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_decrypted_message_media (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x089f5c4a: return skip_constructor_decrypted_message_media_empty (T);
+  case 0x32798a8c: return skip_constructor_decrypted_message_media_photo (T);
+  case 0x35480a59: return skip_constructor_decrypted_message_media_geo_point (T);
+  case 0x588a0a97: return skip_constructor_decrypted_message_media_contact (T);
+  case 0xb095434b: return skip_constructor_decrypted_message_media_document (T);
+  case 0x524a415d: return skip_constructor_decrypted_message_media_video (T);
+  case 0x57e0a9cb: return skip_constructor_decrypted_message_media_audio (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_decrypted_message_media (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_decrypted_message_media_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_media_photo (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_media_geo_point (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_media_contact (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_media_document (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_media_video (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_media_audio (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_decrypted_message_media (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaEmpty", cur_token_len)) {
+    out_int (0x089f5c4a);
+    local_next_token ();
+    if (store_constructor_decrypted_message_media_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaPhoto", cur_token_len)) {
+    out_int (0x32798a8c);
+    local_next_token ();
+    if (store_constructor_decrypted_message_media_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaGeoPoint", cur_token_len)) {
+    out_int (0x35480a59);
+    local_next_token ();
+    if (store_constructor_decrypted_message_media_geo_point (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "decryptedMessageMediaContact", cur_token_len)) {
+    out_int (0x588a0a97);
+    local_next_token ();
+    if (store_constructor_decrypted_message_media_contact (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaDocument", cur_token_len)) {
+    out_int (0xb095434b);
+    local_next_token ();
+    if (store_constructor_decrypted_message_media_document (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaVideo", cur_token_len)) {
+    out_int (0x524a415d);
+    local_next_token ();
+    if (store_constructor_decrypted_message_media_video (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaAudio", cur_token_len)) {
+    out_int (0x57e0a9cb);
+    local_next_token ();
+    if (store_constructor_decrypted_message_media_audio (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_decrypted_message_media (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_decrypted_message_media_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaPhoto", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_decrypted_message_media_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaGeoPoint", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_decrypted_message_media_geo_point (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "decryptedMessageMediaContact", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_decrypted_message_media_contact (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaDocument", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_decrypted_message_media_document (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaVideo", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_decrypted_message_media_video (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaAudio", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_decrypted_message_media_audio (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_decrypted_message_media (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x089f5c4a: res = fetch_constructor_decrypted_message_media_empty (T); break;
+  case 0x32798a8c: res = fetch_constructor_decrypted_message_media_photo (T); break;
+  case 0x35480a59: res = fetch_constructor_decrypted_message_media_geo_point (T); break;
+  case 0x588a0a97: res = fetch_constructor_decrypted_message_media_contact (T); break;
+  case 0xb095434b: res = fetch_constructor_decrypted_message_media_document (T); break;
+  case 0x524a415d: res = fetch_constructor_decrypted_message_media_video (T); break;
+  case 0x57e0a9cb: res = fetch_constructor_decrypted_message_media_audio (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_decrypted_message_media (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_decrypted_message_media_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_media_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_media_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_media_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_media_geo_point (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_media_geo_point (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_media_contact (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_media_contact (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_media_document (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_media_document (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_media_video (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_media_video (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_decrypted_message_media_audio (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_decrypted_message_media_audio (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_decrypted_message_media (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_decrypted_message_media); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_media_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_media_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaGeoPoint", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_media_geo_point (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "decryptedMessageMediaContact", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_media_contact (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaDocument", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_media_document (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaVideo", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_media_video (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaAudio", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_media_audio (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_decrypted_message_media (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_decrypted_message_media); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_media_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_media_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaGeoPoint", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_media_geo_point (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "decryptedMessageMediaContact", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_media_contact (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaDocument", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_media_document (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaVideo", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_media_video (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "decryptedMessageMediaAudio", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_decrypted_message_media_audio (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_decrypted_message_media (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "decryptedMessageMediaEmpty", text_len)) { *R = tstrdup ("decryptedMessageMediaEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "decryptedMessageMediaPhoto", text_len)) { *R = tstrdup ("decryptedMessageMediaPhoto"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "decryptedMessageMediaGeoPoint", text_len)) { *R = tstrdup ("decryptedMessageMediaGeoPoint"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "decryptedMessageMediaContact", text_len)) { *R = tstrdup ("decryptedMessageMediaContact"); return index; } else { index ++; }}
+  if (index == 4) { if (!strncmp (text, "decryptedMessageMediaDocument", text_len)) { *R = tstrdup ("decryptedMessageMediaDocument"); return index; } else { index ++; }}
+  if (index == 5) { if (!strncmp (text, "decryptedMessageMediaVideo", text_len)) { *R = tstrdup ("decryptedMessageMediaVideo"); return index; } else { index ++; }}
+  if (index == 6) { if (!strncmp (text, "decryptedMessageMediaAudio", text_len)) { *R = tstrdup ("decryptedMessageMediaAudio"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_dialog (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xab3a99ac: return skip_constructor_dialog (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_dialog (struct paramed_type *T) {
+  if (skip_constructor_dialog (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_dialog (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 6 && !memcmp (cur_token, "dialog", cur_token_len)) {
+    out_int (0xab3a99ac);
+    local_next_token ();
+    if (store_constructor_dialog (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_dialog (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 6 && !memcmp (cur_token, "dialog", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_dialog (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_dialog (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xab3a99ac: res = fetch_constructor_dialog (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_dialog (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_dialog (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_dialog (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_dialog); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 6 && !memcmp (cur_token, "dialog", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_dialog (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_dialog (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_dialog); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 6 && !memcmp (cur_token, "dialog", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_dialog (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_dialog (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "dialog", text_len)) { *R = tstrdup ("dialog"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_document (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x36f8c871: return skip_constructor_document_empty (T);
+  case 0xf9a39f4f: return skip_constructor_document (T);
+  case 0x9efc6326: return skip_constructor_document_l19 (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_document (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_document_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_document (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_document_l19 (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_document (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "documentEmpty", cur_token_len)) {
+    out_int (0x36f8c871);
+    local_next_token ();
+    if (store_constructor_document_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 8 && !memcmp (cur_token, "document", cur_token_len)) {
+    out_int (0xf9a39f4f);
+    local_next_token ();
+    if (store_constructor_document (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 12 && !memcmp (cur_token, "document_l19", cur_token_len)) {
+    out_int (0x9efc6326);
+    local_next_token ();
+    if (store_constructor_document_l19 (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_document (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "documentEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_document_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 8 && !memcmp (cur_token, "document", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_document (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 12 && !memcmp (cur_token, "document_l19", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_document_l19 (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_document (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x36f8c871: res = fetch_constructor_document_empty (T); break;
+  case 0xf9a39f4f: res = fetch_constructor_document (T); break;
+  case 0x9efc6326: res = fetch_constructor_document_l19 (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_document (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_document_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_document_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_document (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_document (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_document_l19 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_document_l19 (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_document (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_document); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "documentEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_document_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 8 && !memcmp (cur_token, "document", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_document (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 12 && !memcmp (cur_token, "document_l19", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_document_l19 (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_document (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_document); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "documentEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_document_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 8 && !memcmp (cur_token, "document", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_document (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 12 && !memcmp (cur_token, "document_l19", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_document_l19 (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_document (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "documentEmpty", text_len)) { *R = tstrdup ("documentEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "document", text_len)) { *R = tstrdup ("document"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "document_l19", text_len)) { *R = tstrdup ("document_l19"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_document_attribute (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x6c37c15c: return skip_constructor_document_attribute_image_size (T);
+  case 0x11b58939: return skip_constructor_document_attribute_animated (T);
+  case 0xfb0a5727: return skip_constructor_document_attribute_sticker (T);
+  case 0x5910cccb: return skip_constructor_document_attribute_video (T);
+  case 0x051448e5: return skip_constructor_document_attribute_audio (T);
+  case 0x15590068: return skip_constructor_document_attribute_filename (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_document_attribute (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_document_attribute_image_size (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_document_attribute_animated (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_document_attribute_sticker (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_document_attribute_video (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_document_attribute_audio (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_document_attribute_filename (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_document_attribute (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 26 && !memcmp (cur_token, "documentAttributeImageSize", cur_token_len)) {
+    out_int (0x6c37c15c);
+    local_next_token ();
+    if (store_constructor_document_attribute_image_size (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "documentAttributeAnimated", cur_token_len)) {
+    out_int (0x11b58939);
+    local_next_token ();
+    if (store_constructor_document_attribute_animated (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "documentAttributeSticker", cur_token_len)) {
+    out_int (0xfb0a5727);
+    local_next_token ();
+    if (store_constructor_document_attribute_sticker (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "documentAttributeVideo", cur_token_len)) {
+    out_int (0x5910cccb);
+    local_next_token ();
+    if (store_constructor_document_attribute_video (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "documentAttributeAudio", cur_token_len)) {
+    out_int (0x051448e5);
+    local_next_token ();
+    if (store_constructor_document_attribute_audio (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "documentAttributeFilename", cur_token_len)) {
+    out_int (0x15590068);
+    local_next_token ();
+    if (store_constructor_document_attribute_filename (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_document_attribute (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 26 && !memcmp (cur_token, "documentAttributeImageSize", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_document_attribute_image_size (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "documentAttributeAnimated", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_document_attribute_animated (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "documentAttributeSticker", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_document_attribute_sticker (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "documentAttributeVideo", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_document_attribute_video (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "documentAttributeAudio", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_document_attribute_audio (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "documentAttributeFilename", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_document_attribute_filename (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_document_attribute (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x6c37c15c: res = fetch_constructor_document_attribute_image_size (T); break;
+  case 0x11b58939: res = fetch_constructor_document_attribute_animated (T); break;
+  case 0xfb0a5727: res = fetch_constructor_document_attribute_sticker (T); break;
+  case 0x5910cccb: res = fetch_constructor_document_attribute_video (T); break;
+  case 0x051448e5: res = fetch_constructor_document_attribute_audio (T); break;
+  case 0x15590068: res = fetch_constructor_document_attribute_filename (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_document_attribute (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_document_attribute_image_size (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_document_attribute_image_size (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_document_attribute_animated (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_document_attribute_animated (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_document_attribute_sticker (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_document_attribute_sticker (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_document_attribute_video (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_document_attribute_video (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_document_attribute_audio (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_document_attribute_audio (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_document_attribute_filename (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_document_attribute_filename (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_document_attribute (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_document_attribute); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 26 && !memcmp (cur_token, "documentAttributeImageSize", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_document_attribute_image_size (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "documentAttributeAnimated", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_document_attribute_animated (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "documentAttributeSticker", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_document_attribute_sticker (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "documentAttributeVideo", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_document_attribute_video (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "documentAttributeAudio", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_document_attribute_audio (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "documentAttributeFilename", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_document_attribute_filename (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_document_attribute (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_document_attribute); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 26 && !memcmp (cur_token, "documentAttributeImageSize", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_document_attribute_image_size (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "documentAttributeAnimated", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_document_attribute_animated (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "documentAttributeSticker", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_document_attribute_sticker (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "documentAttributeVideo", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_document_attribute_video (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "documentAttributeAudio", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_document_attribute_audio (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "documentAttributeFilename", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_document_attribute_filename (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_document_attribute (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "documentAttributeImageSize", text_len)) { *R = tstrdup ("documentAttributeImageSize"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "documentAttributeAnimated", text_len)) { *R = tstrdup ("documentAttributeAnimated"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "documentAttributeSticker", text_len)) { *R = tstrdup ("documentAttributeSticker"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "documentAttributeVideo", text_len)) { *R = tstrdup ("documentAttributeVideo"); return index; } else { index ++; }}
+  if (index == 4) { if (!strncmp (text, "documentAttributeAudio", text_len)) { *R = tstrdup ("documentAttributeAudio"); return index; } else { index ++; }}
+  if (index == 5) { if (!strncmp (text, "documentAttributeFilename", text_len)) { *R = tstrdup ("documentAttributeFilename"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_double (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x2210c154: return skip_constructor_double (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_double (struct paramed_type *T) {
+  if (skip_constructor_double (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_double (struct paramed_type *T) {
+    out_int (0x2210c154);
+  if (store_constructor_double (T) < 0) { return -1; }
+  return 0;
+}
+int store_type_bare_double (struct paramed_type *T) {
+  if (store_constructor_double (T) < 0) { return -1; }
+  return 0;
+}
+int fetch_type_double (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x2210c154: res = fetch_constructor_double (T); break;
+  default: return -1;
+  }
+  return res;
+}
+int fetch_type_bare_double (struct paramed_type *T) {
+  if (fetch_constructor_double (T) >= 0) { return 0; }
+  return -1;
+}
+int autocomplete_type_double (struct paramed_type *T) {
+  if (autocomplete_constructor_double (T) < 0) { return -1; }
+  return 0;
+}
+int autocomplete_type_bare_double (struct paramed_type *T) {
+  if (autocomplete_constructor_double (T) < 0) { return -1; }
+  return 0;
+}
+int do_autocomplete_type_double (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "double", text_len)) { *R = tstrdup ("double"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_encrypted_chat (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xab7ec0a0: return skip_constructor_encrypted_chat_empty (T);
+  case 0x3bf703dc: return skip_constructor_encrypted_chat_waiting (T);
+  case 0xc878527e: return skip_constructor_encrypted_chat_requested (T);
+  case 0xfa56ce36: return skip_constructor_encrypted_chat (T);
+  case 0x13d6dd27: return skip_constructor_encrypted_chat_discarded (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_encrypted_chat (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_encrypted_chat_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_encrypted_chat_waiting (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_encrypted_chat_requested (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_encrypted_chat (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_encrypted_chat_discarded (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_encrypted_chat (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "encryptedChatEmpty", cur_token_len)) {
+    out_int (0xab7ec0a0);
+    local_next_token ();
+    if (store_constructor_encrypted_chat_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "encryptedChatWaiting", cur_token_len)) {
+    out_int (0x3bf703dc);
+    local_next_token ();
+    if (store_constructor_encrypted_chat_waiting (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "encryptedChatRequested", cur_token_len)) {
+    out_int (0xc878527e);
+    local_next_token ();
+    if (store_constructor_encrypted_chat_requested (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "encryptedChat", cur_token_len)) {
+    out_int (0xfa56ce36);
+    local_next_token ();
+    if (store_constructor_encrypted_chat (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "encryptedChatDiscarded", cur_token_len)) {
+    out_int (0x13d6dd27);
+    local_next_token ();
+    if (store_constructor_encrypted_chat_discarded (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_encrypted_chat (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "encryptedChatEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_encrypted_chat_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "encryptedChatWaiting", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_encrypted_chat_waiting (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "encryptedChatRequested", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_encrypted_chat_requested (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "encryptedChat", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_encrypted_chat (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "encryptedChatDiscarded", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_encrypted_chat_discarded (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_encrypted_chat (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xab7ec0a0: res = fetch_constructor_encrypted_chat_empty (T); break;
+  case 0x3bf703dc: res = fetch_constructor_encrypted_chat_waiting (T); break;
+  case 0xc878527e: res = fetch_constructor_encrypted_chat_requested (T); break;
+  case 0xfa56ce36: res = fetch_constructor_encrypted_chat (T); break;
+  case 0x13d6dd27: res = fetch_constructor_encrypted_chat_discarded (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_encrypted_chat (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_encrypted_chat_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_encrypted_chat_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_encrypted_chat_waiting (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_encrypted_chat_waiting (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_encrypted_chat_requested (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_encrypted_chat_requested (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_encrypted_chat (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_encrypted_chat (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_encrypted_chat_discarded (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_encrypted_chat_discarded (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_encrypted_chat (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_encrypted_chat); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "encryptedChatEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_encrypted_chat_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "encryptedChatWaiting", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_encrypted_chat_waiting (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "encryptedChatRequested", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_encrypted_chat_requested (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "encryptedChat", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_encrypted_chat (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "encryptedChatDiscarded", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_encrypted_chat_discarded (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_encrypted_chat (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_encrypted_chat); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "encryptedChatEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_encrypted_chat_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "encryptedChatWaiting", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_encrypted_chat_waiting (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "encryptedChatRequested", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_encrypted_chat_requested (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "encryptedChat", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_encrypted_chat (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "encryptedChatDiscarded", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_encrypted_chat_discarded (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_encrypted_chat (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "encryptedChatEmpty", text_len)) { *R = tstrdup ("encryptedChatEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "encryptedChatWaiting", text_len)) { *R = tstrdup ("encryptedChatWaiting"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "encryptedChatRequested", text_len)) { *R = tstrdup ("encryptedChatRequested"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "encryptedChat", text_len)) { *R = tstrdup ("encryptedChat"); return index; } else { index ++; }}
+  if (index == 4) { if (!strncmp (text, "encryptedChatDiscarded", text_len)) { *R = tstrdup ("encryptedChatDiscarded"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_encrypted_file (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xc21f497e: return skip_constructor_encrypted_file_empty (T);
+  case 0x4a70994c: return skip_constructor_encrypted_file (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_encrypted_file (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_encrypted_file_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_encrypted_file (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_encrypted_file (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "encryptedFileEmpty", cur_token_len)) {
+    out_int (0xc21f497e);
+    local_next_token ();
+    if (store_constructor_encrypted_file_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "encryptedFile", cur_token_len)) {
+    out_int (0x4a70994c);
+    local_next_token ();
+    if (store_constructor_encrypted_file (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_encrypted_file (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "encryptedFileEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_encrypted_file_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "encryptedFile", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_encrypted_file (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_encrypted_file (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xc21f497e: res = fetch_constructor_encrypted_file_empty (T); break;
+  case 0x4a70994c: res = fetch_constructor_encrypted_file (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_encrypted_file (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_encrypted_file_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_encrypted_file_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_encrypted_file (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_encrypted_file (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_encrypted_file (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_encrypted_file); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "encryptedFileEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_encrypted_file_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "encryptedFile", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_encrypted_file (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_encrypted_file (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_encrypted_file); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "encryptedFileEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_encrypted_file_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "encryptedFile", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_encrypted_file (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_encrypted_file (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "encryptedFileEmpty", text_len)) { *R = tstrdup ("encryptedFileEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "encryptedFile", text_len)) { *R = tstrdup ("encryptedFile"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_encrypted_message (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xed18c118: return skip_constructor_encrypted_message (T);
+  case 0x23734b06: return skip_constructor_encrypted_message_service (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_encrypted_message (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_encrypted_message (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_encrypted_message_service (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_encrypted_message (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 16 && !memcmp (cur_token, "encryptedMessage", cur_token_len)) {
+    out_int (0xed18c118);
+    local_next_token ();
+    if (store_constructor_encrypted_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "encryptedMessageService", cur_token_len)) {
+    out_int (0x23734b06);
+    local_next_token ();
+    if (store_constructor_encrypted_message_service (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_encrypted_message (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 16 && !memcmp (cur_token, "encryptedMessage", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_encrypted_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "encryptedMessageService", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_encrypted_message_service (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_encrypted_message (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xed18c118: res = fetch_constructor_encrypted_message (T); break;
+  case 0x23734b06: res = fetch_constructor_encrypted_message_service (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_encrypted_message (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_encrypted_message (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_encrypted_message (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_encrypted_message_service (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_encrypted_message_service (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_encrypted_message (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_encrypted_message); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 16 && !memcmp (cur_token, "encryptedMessage", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_encrypted_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "encryptedMessageService", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_encrypted_message_service (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_encrypted_message (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_encrypted_message); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 16 && !memcmp (cur_token, "encryptedMessage", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_encrypted_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "encryptedMessageService", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_encrypted_message_service (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_encrypted_message (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "encryptedMessage", text_len)) { *R = tstrdup ("encryptedMessage"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "encryptedMessageService", text_len)) { *R = tstrdup ("encryptedMessageService"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_error (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xc4b9f9bb: return skip_constructor_error (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_error (struct paramed_type *T) {
+  if (skip_constructor_error (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_error (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 5 && !memcmp (cur_token, "error", cur_token_len)) {
+    out_int (0xc4b9f9bb);
+    local_next_token ();
+    if (store_constructor_error (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_error (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 5 && !memcmp (cur_token, "error", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_error (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_error (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xc4b9f9bb: res = fetch_constructor_error (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_error (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_error (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_error (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_error); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 5 && !memcmp (cur_token, "error", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_error (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_error (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_error); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 5 && !memcmp (cur_token, "error", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_error (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_error (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "error", text_len)) { *R = tstrdup ("error"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_file_location (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x7c596b46: return skip_constructor_file_location_unavailable (T);
+  case 0x53d69076: return skip_constructor_file_location (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_file_location (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_file_location_unavailable (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_file_location (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_file_location (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "fileLocationUnavailable", cur_token_len)) {
+    out_int (0x7c596b46);
+    local_next_token ();
+    if (store_constructor_file_location_unavailable (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 12 && !memcmp (cur_token, "fileLocation", cur_token_len)) {
+    out_int (0x53d69076);
+    local_next_token ();
+    if (store_constructor_file_location (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_file_location (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "fileLocationUnavailable", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_file_location_unavailable (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 12 && !memcmp (cur_token, "fileLocation", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_file_location (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_file_location (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x7c596b46: res = fetch_constructor_file_location_unavailable (T); break;
+  case 0x53d69076: res = fetch_constructor_file_location (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_file_location (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_file_location_unavailable (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_file_location_unavailable (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_file_location (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_file_location (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_file_location (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_file_location); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "fileLocationUnavailable", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_file_location_unavailable (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 12 && !memcmp (cur_token, "fileLocation", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_file_location (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_file_location (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_file_location); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "fileLocationUnavailable", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_file_location_unavailable (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 12 && !memcmp (cur_token, "fileLocation", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_file_location (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_file_location (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "fileLocationUnavailable", text_len)) { *R = tstrdup ("fileLocationUnavailable"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "fileLocation", text_len)) { *R = tstrdup ("fileLocation"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_geo_chat_message (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x60311a9b: return skip_constructor_geo_chat_message_empty (T);
+  case 0x4505f8e1: return skip_constructor_geo_chat_message (T);
+  case 0xd34fa24e: return skip_constructor_geo_chat_message_service (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_geo_chat_message (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_geo_chat_message_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_geo_chat_message (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_geo_chat_message_service (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_geo_chat_message (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 19 && !memcmp (cur_token, "geoChatMessageEmpty", cur_token_len)) {
+    out_int (0x60311a9b);
+    local_next_token ();
+    if (store_constructor_geo_chat_message_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "geoChatMessage", cur_token_len)) {
+    out_int (0x4505f8e1);
+    local_next_token ();
+    if (store_constructor_geo_chat_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "geoChatMessageService", cur_token_len)) {
+    out_int (0xd34fa24e);
+    local_next_token ();
+    if (store_constructor_geo_chat_message_service (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_geo_chat_message (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 19 && !memcmp (cur_token, "geoChatMessageEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_geo_chat_message_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "geoChatMessage", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_geo_chat_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "geoChatMessageService", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_geo_chat_message_service (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_geo_chat_message (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x60311a9b: res = fetch_constructor_geo_chat_message_empty (T); break;
+  case 0x4505f8e1: res = fetch_constructor_geo_chat_message (T); break;
+  case 0xd34fa24e: res = fetch_constructor_geo_chat_message_service (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_geo_chat_message (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_geo_chat_message_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_geo_chat_message_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_geo_chat_message (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_geo_chat_message (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_geo_chat_message_service (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_geo_chat_message_service (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_geo_chat_message (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_geo_chat_message); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 19 && !memcmp (cur_token, "geoChatMessageEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_geo_chat_message_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "geoChatMessage", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_geo_chat_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "geoChatMessageService", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_geo_chat_message_service (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_geo_chat_message (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_geo_chat_message); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 19 && !memcmp (cur_token, "geoChatMessageEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_geo_chat_message_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "geoChatMessage", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_geo_chat_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "geoChatMessageService", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_geo_chat_message_service (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_geo_chat_message (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "geoChatMessageEmpty", text_len)) { *R = tstrdup ("geoChatMessageEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "geoChatMessage", text_len)) { *R = tstrdup ("geoChatMessage"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "geoChatMessageService", text_len)) { *R = tstrdup ("geoChatMessageService"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_geo_point (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x1117dd5f: return skip_constructor_geo_point_empty (T);
+  case 0x2049d70c: return skip_constructor_geo_point (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_geo_point (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_geo_point_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_geo_point (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_geo_point (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "geoPointEmpty", cur_token_len)) {
+    out_int (0x1117dd5f);
+    local_next_token ();
+    if (store_constructor_geo_point_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 8 && !memcmp (cur_token, "geoPoint", cur_token_len)) {
+    out_int (0x2049d70c);
+    local_next_token ();
+    if (store_constructor_geo_point (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_geo_point (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "geoPointEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_geo_point_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 8 && !memcmp (cur_token, "geoPoint", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_geo_point (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_geo_point (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x1117dd5f: res = fetch_constructor_geo_point_empty (T); break;
+  case 0x2049d70c: res = fetch_constructor_geo_point (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_geo_point (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_geo_point_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_geo_point_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_geo_point (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_geo_point (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_geo_point (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_geo_point); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "geoPointEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_geo_point_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 8 && !memcmp (cur_token, "geoPoint", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_geo_point (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_geo_point (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_geo_point); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "geoPointEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_geo_point_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 8 && !memcmp (cur_token, "geoPoint", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_geo_point (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_geo_point (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "geoPointEmpty", text_len)) { *R = tstrdup ("geoPointEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "geoPoint", text_len)) { *R = tstrdup ("geoPoint"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_imported_contact (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xd0028438: return skip_constructor_imported_contact (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_imported_contact (struct paramed_type *T) {
+  if (skip_constructor_imported_contact (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_imported_contact (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "importedContact", cur_token_len)) {
+    out_int (0xd0028438);
+    local_next_token ();
+    if (store_constructor_imported_contact (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_imported_contact (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "importedContact", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_imported_contact (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_imported_contact (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xd0028438: res = fetch_constructor_imported_contact (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_imported_contact (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_imported_contact (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_imported_contact (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_imported_contact); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "importedContact", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_imported_contact (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_imported_contact (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_imported_contact); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "importedContact", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_imported_contact (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_imported_contact (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "importedContact", text_len)) { *R = tstrdup ("importedContact"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_input_app_event (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x770656a8: return skip_constructor_input_app_event (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_input_app_event (struct paramed_type *T) {
+  if (skip_constructor_input_app_event (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_input_app_event (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "inputAppEvent", cur_token_len)) {
+    out_int (0x770656a8);
+    local_next_token ();
+    if (store_constructor_input_app_event (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_input_app_event (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "inputAppEvent", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_app_event (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_input_app_event (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x770656a8: res = fetch_constructor_input_app_event (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_input_app_event (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_input_app_event (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_input_app_event (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_app_event); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "inputAppEvent", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_app_event (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_input_app_event (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_app_event); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "inputAppEvent", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_app_event (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_input_app_event (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "inputAppEvent", text_len)) { *R = tstrdup ("inputAppEvent"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_input_audio (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xd95adc84: return skip_constructor_input_audio_empty (T);
+  case 0x77d440ff: return skip_constructor_input_audio (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_input_audio (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_input_audio_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_audio (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_input_audio (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputAudioEmpty", cur_token_len)) {
+    out_int (0xd95adc84);
+    local_next_token ();
+    if (store_constructor_input_audio_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 10 && !memcmp (cur_token, "inputAudio", cur_token_len)) {
+    out_int (0x77d440ff);
+    local_next_token ();
+    if (store_constructor_input_audio (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_input_audio (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputAudioEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_audio_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 10 && !memcmp (cur_token, "inputAudio", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_audio (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_input_audio (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xd95adc84: res = fetch_constructor_input_audio_empty (T); break;
+  case 0x77d440ff: res = fetch_constructor_input_audio (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_input_audio (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_input_audio_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_audio_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_audio (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_audio (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_input_audio (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_audio); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputAudioEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_audio_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 10 && !memcmp (cur_token, "inputAudio", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_audio (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_input_audio (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_audio); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputAudioEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_audio_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 10 && !memcmp (cur_token, "inputAudio", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_audio (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_input_audio (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "inputAudioEmpty", text_len)) { *R = tstrdup ("inputAudioEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "inputAudio", text_len)) { *R = tstrdup ("inputAudio"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_input_chat_photo (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x1ca48f57: return skip_constructor_input_chat_photo_empty (T);
+  case 0x94254732: return skip_constructor_input_chat_uploaded_photo (T);
+  case 0xb2e1bf08: return skip_constructor_input_chat_photo (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_input_chat_photo (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_input_chat_photo_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_chat_uploaded_photo (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_chat_photo (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_input_chat_photo (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 19 && !memcmp (cur_token, "inputChatPhotoEmpty", cur_token_len)) {
+    out_int (0x1ca48f57);
+    local_next_token ();
+    if (store_constructor_input_chat_photo_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "inputChatUploadedPhoto", cur_token_len)) {
+    out_int (0x94254732);
+    local_next_token ();
+    if (store_constructor_input_chat_uploaded_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "inputChatPhoto", cur_token_len)) {
+    out_int (0xb2e1bf08);
+    local_next_token ();
+    if (store_constructor_input_chat_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_input_chat_photo (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 19 && !memcmp (cur_token, "inputChatPhotoEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_chat_photo_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "inputChatUploadedPhoto", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_chat_uploaded_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "inputChatPhoto", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_chat_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_input_chat_photo (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x1ca48f57: res = fetch_constructor_input_chat_photo_empty (T); break;
+  case 0x94254732: res = fetch_constructor_input_chat_uploaded_photo (T); break;
+  case 0xb2e1bf08: res = fetch_constructor_input_chat_photo (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_input_chat_photo (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_input_chat_photo_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_chat_photo_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_chat_uploaded_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_chat_uploaded_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_chat_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_chat_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_input_chat_photo (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_chat_photo); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 19 && !memcmp (cur_token, "inputChatPhotoEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_chat_photo_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "inputChatUploadedPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_chat_uploaded_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "inputChatPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_chat_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_input_chat_photo (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_chat_photo); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 19 && !memcmp (cur_token, "inputChatPhotoEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_chat_photo_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "inputChatUploadedPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_chat_uploaded_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "inputChatPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_chat_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_input_chat_photo (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "inputChatPhotoEmpty", text_len)) { *R = tstrdup ("inputChatPhotoEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "inputChatUploadedPhoto", text_len)) { *R = tstrdup ("inputChatUploadedPhoto"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "inputChatPhoto", text_len)) { *R = tstrdup ("inputChatPhoto"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_input_contact (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xf392b7f4: return skip_constructor_input_phone_contact (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_input_contact (struct paramed_type *T) {
+  if (skip_constructor_input_phone_contact (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_input_contact (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "inputPhoneContact", cur_token_len)) {
+    out_int (0xf392b7f4);
+    local_next_token ();
+    if (store_constructor_input_phone_contact (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_input_contact (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "inputPhoneContact", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_phone_contact (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_input_contact (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xf392b7f4: res = fetch_constructor_input_phone_contact (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_input_contact (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_input_phone_contact (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_input_contact (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_contact); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "inputPhoneContact", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_phone_contact (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_input_contact (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_contact); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "inputPhoneContact", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_phone_contact (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_input_contact (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "inputPhoneContact", text_len)) { *R = tstrdup ("inputPhoneContact"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_input_document (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x72f0eaae: return skip_constructor_input_document_empty (T);
+  case 0x18798952: return skip_constructor_input_document (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_input_document (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_input_document_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_document (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_input_document (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputDocumentEmpty", cur_token_len)) {
+    out_int (0x72f0eaae);
+    local_next_token ();
+    if (store_constructor_input_document_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "inputDocument", cur_token_len)) {
+    out_int (0x18798952);
+    local_next_token ();
+    if (store_constructor_input_document (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_input_document (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputDocumentEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_document_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "inputDocument", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_document (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_input_document (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x72f0eaae: res = fetch_constructor_input_document_empty (T); break;
+  case 0x18798952: res = fetch_constructor_input_document (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_input_document (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_input_document_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_document_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_document (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_document (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_input_document (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_document); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputDocumentEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_document_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "inputDocument", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_document (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_input_document (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_document); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputDocumentEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_document_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "inputDocument", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_document (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_input_document (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "inputDocumentEmpty", text_len)) { *R = tstrdup ("inputDocumentEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "inputDocument", text_len)) { *R = tstrdup ("inputDocument"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_input_encrypted_chat (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xf141b5e1: return skip_constructor_input_encrypted_chat (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_input_encrypted_chat (struct paramed_type *T) {
+  if (skip_constructor_input_encrypted_chat (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_input_encrypted_chat (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputEncryptedChat", cur_token_len)) {
+    out_int (0xf141b5e1);
+    local_next_token ();
+    if (store_constructor_input_encrypted_chat (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_input_encrypted_chat (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputEncryptedChat", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_encrypted_chat (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_input_encrypted_chat (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xf141b5e1: res = fetch_constructor_input_encrypted_chat (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_input_encrypted_chat (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_input_encrypted_chat (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_input_encrypted_chat (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_encrypted_chat); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputEncryptedChat", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_encrypted_chat (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_input_encrypted_chat (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_encrypted_chat); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputEncryptedChat", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_encrypted_chat (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_input_encrypted_chat (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "inputEncryptedChat", text_len)) { *R = tstrdup ("inputEncryptedChat"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_input_encrypted_file (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x1837c364: return skip_constructor_input_encrypted_file_empty (T);
+  case 0x64bd0306: return skip_constructor_input_encrypted_file_uploaded (T);
+  case 0x5a17b5e5: return skip_constructor_input_encrypted_file (T);
+  case 0x2dc173c8: return skip_constructor_input_encrypted_file_big_uploaded (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_input_encrypted_file (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_input_encrypted_file_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_encrypted_file_uploaded (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_encrypted_file (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_encrypted_file_big_uploaded (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_input_encrypted_file (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "inputEncryptedFileEmpty", cur_token_len)) {
+    out_int (0x1837c364);
+    local_next_token ();
+    if (store_constructor_input_encrypted_file_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "inputEncryptedFileUploaded", cur_token_len)) {
+    out_int (0x64bd0306);
+    local_next_token ();
+    if (store_constructor_input_encrypted_file_uploaded (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputEncryptedFile", cur_token_len)) {
+    out_int (0x5a17b5e5);
+    local_next_token ();
+    if (store_constructor_input_encrypted_file (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "inputEncryptedFileBigUploaded", cur_token_len)) {
+    out_int (0x2dc173c8);
+    local_next_token ();
+    if (store_constructor_input_encrypted_file_big_uploaded (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_input_encrypted_file (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "inputEncryptedFileEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_encrypted_file_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "inputEncryptedFileUploaded", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_encrypted_file_uploaded (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputEncryptedFile", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_encrypted_file (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "inputEncryptedFileBigUploaded", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_encrypted_file_big_uploaded (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_input_encrypted_file (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x1837c364: res = fetch_constructor_input_encrypted_file_empty (T); break;
+  case 0x64bd0306: res = fetch_constructor_input_encrypted_file_uploaded (T); break;
+  case 0x5a17b5e5: res = fetch_constructor_input_encrypted_file (T); break;
+  case 0x2dc173c8: res = fetch_constructor_input_encrypted_file_big_uploaded (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_input_encrypted_file (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_input_encrypted_file_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_encrypted_file_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_encrypted_file_uploaded (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_encrypted_file_uploaded (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_encrypted_file (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_encrypted_file (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_encrypted_file_big_uploaded (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_encrypted_file_big_uploaded (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_input_encrypted_file (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_encrypted_file); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "inputEncryptedFileEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_encrypted_file_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "inputEncryptedFileUploaded", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_encrypted_file_uploaded (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputEncryptedFile", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_encrypted_file (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "inputEncryptedFileBigUploaded", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_encrypted_file_big_uploaded (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_input_encrypted_file (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_encrypted_file); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "inputEncryptedFileEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_encrypted_file_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "inputEncryptedFileUploaded", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_encrypted_file_uploaded (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputEncryptedFile", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_encrypted_file (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "inputEncryptedFileBigUploaded", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_encrypted_file_big_uploaded (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_input_encrypted_file (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "inputEncryptedFileEmpty", text_len)) { *R = tstrdup ("inputEncryptedFileEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "inputEncryptedFileUploaded", text_len)) { *R = tstrdup ("inputEncryptedFileUploaded"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "inputEncryptedFile", text_len)) { *R = tstrdup ("inputEncryptedFile"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "inputEncryptedFileBigUploaded", text_len)) { *R = tstrdup ("inputEncryptedFileBigUploaded"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_input_file (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xf52ff27f: return skip_constructor_input_file (T);
+  case 0xfa4f0bb5: return skip_constructor_input_file_big (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_input_file (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_input_file (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_file_big (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_input_file (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "inputFile", cur_token_len)) {
+    out_int (0xf52ff27f);
+    local_next_token ();
+    if (store_constructor_input_file (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 12 && !memcmp (cur_token, "inputFileBig", cur_token_len)) {
+    out_int (0xfa4f0bb5);
+    local_next_token ();
+    if (store_constructor_input_file_big (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_input_file (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "inputFile", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_file (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 12 && !memcmp (cur_token, "inputFileBig", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_file_big (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_input_file (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xf52ff27f: res = fetch_constructor_input_file (T); break;
+  case 0xfa4f0bb5: res = fetch_constructor_input_file_big (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_input_file (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_input_file (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_file (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_file_big (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_file_big (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_input_file (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_file); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "inputFile", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_file (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 12 && !memcmp (cur_token, "inputFileBig", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_file_big (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_input_file (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_file); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "inputFile", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_file (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 12 && !memcmp (cur_token, "inputFileBig", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_file_big (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_input_file (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "inputFile", text_len)) { *R = tstrdup ("inputFile"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "inputFileBig", text_len)) { *R = tstrdup ("inputFileBig"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_input_file_location (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x14637196: return skip_constructor_input_file_location (T);
+  case 0x3d0364ec: return skip_constructor_input_video_file_location (T);
+  case 0xf5235d55: return skip_constructor_input_encrypted_file_location (T);
+  case 0x74dc404d: return skip_constructor_input_audio_file_location (T);
+  case 0x4e45abe9: return skip_constructor_input_document_file_location (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_input_file_location (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_input_file_location (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_video_file_location (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_encrypted_file_location (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_audio_file_location (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_document_file_location (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_input_file_location (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "inputFileLocation", cur_token_len)) {
+    out_int (0x14637196);
+    local_next_token ();
+    if (store_constructor_input_file_location (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "inputVideoFileLocation", cur_token_len)) {
+    out_int (0x3d0364ec);
+    local_next_token ();
+    if (store_constructor_input_video_file_location (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "inputEncryptedFileLocation", cur_token_len)) {
+    out_int (0xf5235d55);
+    local_next_token ();
+    if (store_constructor_input_encrypted_file_location (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "inputAudioFileLocation", cur_token_len)) {
+    out_int (0x74dc404d);
+    local_next_token ();
+    if (store_constructor_input_audio_file_location (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "inputDocumentFileLocation", cur_token_len)) {
+    out_int (0x4e45abe9);
+    local_next_token ();
+    if (store_constructor_input_document_file_location (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_input_file_location (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "inputFileLocation", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_file_location (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "inputVideoFileLocation", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_video_file_location (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "inputEncryptedFileLocation", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_encrypted_file_location (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "inputAudioFileLocation", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_audio_file_location (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "inputDocumentFileLocation", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_document_file_location (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_input_file_location (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x14637196: res = fetch_constructor_input_file_location (T); break;
+  case 0x3d0364ec: res = fetch_constructor_input_video_file_location (T); break;
+  case 0xf5235d55: res = fetch_constructor_input_encrypted_file_location (T); break;
+  case 0x74dc404d: res = fetch_constructor_input_audio_file_location (T); break;
+  case 0x4e45abe9: res = fetch_constructor_input_document_file_location (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_input_file_location (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_input_file_location (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_file_location (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_video_file_location (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_video_file_location (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_encrypted_file_location (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_encrypted_file_location (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_audio_file_location (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_audio_file_location (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_document_file_location (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_document_file_location (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_input_file_location (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_file_location); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "inputFileLocation", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_file_location (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "inputVideoFileLocation", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_video_file_location (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "inputEncryptedFileLocation", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_encrypted_file_location (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "inputAudioFileLocation", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_audio_file_location (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "inputDocumentFileLocation", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_document_file_location (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_input_file_location (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_file_location); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "inputFileLocation", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_file_location (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "inputVideoFileLocation", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_video_file_location (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "inputEncryptedFileLocation", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_encrypted_file_location (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "inputAudioFileLocation", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_audio_file_location (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "inputDocumentFileLocation", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_document_file_location (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_input_file_location (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "inputFileLocation", text_len)) { *R = tstrdup ("inputFileLocation"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "inputVideoFileLocation", text_len)) { *R = tstrdup ("inputVideoFileLocation"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "inputEncryptedFileLocation", text_len)) { *R = tstrdup ("inputEncryptedFileLocation"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "inputAudioFileLocation", text_len)) { *R = tstrdup ("inputAudioFileLocation"); return index; } else { index ++; }}
+  if (index == 4) { if (!strncmp (text, "inputDocumentFileLocation", text_len)) { *R = tstrdup ("inputDocumentFileLocation"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_input_geo_chat (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x74d456fa: return skip_constructor_input_geo_chat (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_input_geo_chat (struct paramed_type *T) {
+  if (skip_constructor_input_geo_chat (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_input_geo_chat (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 12 && !memcmp (cur_token, "inputGeoChat", cur_token_len)) {
+    out_int (0x74d456fa);
+    local_next_token ();
+    if (store_constructor_input_geo_chat (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_input_geo_chat (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 12 && !memcmp (cur_token, "inputGeoChat", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_geo_chat (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_input_geo_chat (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x74d456fa: res = fetch_constructor_input_geo_chat (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_input_geo_chat (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_input_geo_chat (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_input_geo_chat (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_geo_chat); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 12 && !memcmp (cur_token, "inputGeoChat", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_geo_chat (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_input_geo_chat (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_geo_chat); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 12 && !memcmp (cur_token, "inputGeoChat", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_geo_chat (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_input_geo_chat (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "inputGeoChat", text_len)) { *R = tstrdup ("inputGeoChat"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_input_geo_point (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xe4c123d6: return skip_constructor_input_geo_point_empty (T);
+  case 0xf3b7acc9: return skip_constructor_input_geo_point (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_input_geo_point (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_input_geo_point_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_geo_point (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_input_geo_point (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputGeoPointEmpty", cur_token_len)) {
+    out_int (0xe4c123d6);
+    local_next_token ();
+    if (store_constructor_input_geo_point_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "inputGeoPoint", cur_token_len)) {
+    out_int (0xf3b7acc9);
+    local_next_token ();
+    if (store_constructor_input_geo_point (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_input_geo_point (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputGeoPointEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_geo_point_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "inputGeoPoint", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_geo_point (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_input_geo_point (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xe4c123d6: res = fetch_constructor_input_geo_point_empty (T); break;
+  case 0xf3b7acc9: res = fetch_constructor_input_geo_point (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_input_geo_point (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_input_geo_point_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_geo_point_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_geo_point (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_geo_point (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_input_geo_point (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_geo_point); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputGeoPointEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_geo_point_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "inputGeoPoint", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_geo_point (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_input_geo_point (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_geo_point); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputGeoPointEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_geo_point_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "inputGeoPoint", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_geo_point (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_input_geo_point (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "inputGeoPointEmpty", text_len)) { *R = tstrdup ("inputGeoPointEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "inputGeoPoint", text_len)) { *R = tstrdup ("inputGeoPoint"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_input_media (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x9664f57f: return skip_constructor_input_media_empty (T);
+  case 0x2dc53a7d: return skip_constructor_input_media_uploaded_photo (T);
+  case 0x8f2ab2ec: return skip_constructor_input_media_photo (T);
+  case 0xf9c44144: return skip_constructor_input_media_geo_point (T);
+  case 0xa6e45987: return skip_constructor_input_media_contact (T);
+  case 0x133ad6f6: return skip_constructor_input_media_uploaded_video (T);
+  case 0x9912dabf: return skip_constructor_input_media_uploaded_thumb_video (T);
+  case 0x7f023ae6: return skip_constructor_input_media_video (T);
+  case 0x4e498cab: return skip_constructor_input_media_uploaded_audio (T);
+  case 0x89938781: return skip_constructor_input_media_audio (T);
+  case 0xffe76b78: return skip_constructor_input_media_uploaded_document (T);
+  case 0x41481486: return skip_constructor_input_media_uploaded_thumb_document (T);
+  case 0xd184e841: return skip_constructor_input_media_document (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_input_media (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_input_media_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_media_uploaded_photo (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_media_photo (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_media_geo_point (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_media_contact (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_media_uploaded_video (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_media_uploaded_thumb_video (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_media_video (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_media_uploaded_audio (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_media_audio (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_media_uploaded_document (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_media_uploaded_thumb_document (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_media_document (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_input_media (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaEmpty", cur_token_len)) {
+    out_int (0x9664f57f);
+    local_next_token ();
+    if (store_constructor_input_media_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "inputMediaUploadedPhoto", cur_token_len)) {
+    out_int (0x2dc53a7d);
+    local_next_token ();
+    if (store_constructor_input_media_uploaded_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaPhoto", cur_token_len)) {
+    out_int (0x8f2ab2ec);
+    local_next_token ();
+    if (store_constructor_input_media_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputMediaGeoPoint", cur_token_len)) {
+    out_int (0xf9c44144);
+    local_next_token ();
+    if (store_constructor_input_media_geo_point (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "inputMediaContact", cur_token_len)) {
+    out_int (0xa6e45987);
+    local_next_token ();
+    if (store_constructor_input_media_contact (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "inputMediaUploadedVideo", cur_token_len)) {
+    out_int (0x133ad6f6);
+    local_next_token ();
+    if (store_constructor_input_media_uploaded_video (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "inputMediaUploadedThumbVideo", cur_token_len)) {
+    out_int (0x9912dabf);
+    local_next_token ();
+    if (store_constructor_input_media_uploaded_thumb_video (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaVideo", cur_token_len)) {
+    out_int (0x7f023ae6);
+    local_next_token ();
+    if (store_constructor_input_media_video (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "inputMediaUploadedAudio", cur_token_len)) {
+    out_int (0x4e498cab);
+    local_next_token ();
+    if (store_constructor_input_media_uploaded_audio (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaAudio", cur_token_len)) {
+    out_int (0x89938781);
+    local_next_token ();
+    if (store_constructor_input_media_audio (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "inputMediaUploadedDocument", cur_token_len)) {
+    out_int (0xffe76b78);
+    local_next_token ();
+    if (store_constructor_input_media_uploaded_document (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 31 && !memcmp (cur_token, "inputMediaUploadedThumbDocument", cur_token_len)) {
+    out_int (0x41481486);
+    local_next_token ();
+    if (store_constructor_input_media_uploaded_thumb_document (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputMediaDocument", cur_token_len)) {
+    out_int (0xd184e841);
+    local_next_token ();
+    if (store_constructor_input_media_document (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_input_media (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_media_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "inputMediaUploadedPhoto", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_media_uploaded_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaPhoto", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_media_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputMediaGeoPoint", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_media_geo_point (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "inputMediaContact", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_media_contact (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "inputMediaUploadedVideo", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_media_uploaded_video (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "inputMediaUploadedThumbVideo", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_media_uploaded_thumb_video (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaVideo", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_media_video (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "inputMediaUploadedAudio", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_media_uploaded_audio (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaAudio", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_media_audio (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "inputMediaUploadedDocument", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_media_uploaded_document (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 31 && !memcmp (cur_token, "inputMediaUploadedThumbDocument", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_media_uploaded_thumb_document (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputMediaDocument", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_media_document (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_input_media (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x9664f57f: res = fetch_constructor_input_media_empty (T); break;
+  case 0x2dc53a7d: res = fetch_constructor_input_media_uploaded_photo (T); break;
+  case 0x8f2ab2ec: res = fetch_constructor_input_media_photo (T); break;
+  case 0xf9c44144: res = fetch_constructor_input_media_geo_point (T); break;
+  case 0xa6e45987: res = fetch_constructor_input_media_contact (T); break;
+  case 0x133ad6f6: res = fetch_constructor_input_media_uploaded_video (T); break;
+  case 0x9912dabf: res = fetch_constructor_input_media_uploaded_thumb_video (T); break;
+  case 0x7f023ae6: res = fetch_constructor_input_media_video (T); break;
+  case 0x4e498cab: res = fetch_constructor_input_media_uploaded_audio (T); break;
+  case 0x89938781: res = fetch_constructor_input_media_audio (T); break;
+  case 0xffe76b78: res = fetch_constructor_input_media_uploaded_document (T); break;
+  case 0x41481486: res = fetch_constructor_input_media_uploaded_thumb_document (T); break;
+  case 0xd184e841: res = fetch_constructor_input_media_document (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_input_media (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_input_media_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_media_uploaded_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_uploaded_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_media_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_media_geo_point (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_geo_point (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_media_contact (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_contact (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_media_uploaded_video (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_uploaded_video (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_media_uploaded_thumb_video (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_uploaded_thumb_video (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_media_video (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_video (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_media_uploaded_audio (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_uploaded_audio (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_media_audio (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_audio (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_media_uploaded_document (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_uploaded_document (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_media_uploaded_thumb_document (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_uploaded_thumb_document (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_media_document (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_media_document (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_input_media (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_media); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_media_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "inputMediaUploadedPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_media_uploaded_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_media_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputMediaGeoPoint", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_media_geo_point (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "inputMediaContact", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_media_contact (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "inputMediaUploadedVideo", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_media_uploaded_video (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "inputMediaUploadedThumbVideo", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_media_uploaded_thumb_video (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaVideo", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_media_video (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "inputMediaUploadedAudio", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_media_uploaded_audio (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaAudio", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_media_audio (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "inputMediaUploadedDocument", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_media_uploaded_document (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 31 && !memcmp (cur_token, "inputMediaUploadedThumbDocument", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_media_uploaded_thumb_document (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputMediaDocument", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_media_document (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_input_media (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_media); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_media_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "inputMediaUploadedPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_media_uploaded_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_media_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputMediaGeoPoint", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_media_geo_point (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "inputMediaContact", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_media_contact (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "inputMediaUploadedVideo", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_media_uploaded_video (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "inputMediaUploadedThumbVideo", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_media_uploaded_thumb_video (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaVideo", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_media_video (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "inputMediaUploadedAudio", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_media_uploaded_audio (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputMediaAudio", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_media_audio (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "inputMediaUploadedDocument", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_media_uploaded_document (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 31 && !memcmp (cur_token, "inputMediaUploadedThumbDocument", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_media_uploaded_thumb_document (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputMediaDocument", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_media_document (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_input_media (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "inputMediaEmpty", text_len)) { *R = tstrdup ("inputMediaEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "inputMediaUploadedPhoto", text_len)) { *R = tstrdup ("inputMediaUploadedPhoto"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "inputMediaPhoto", text_len)) { *R = tstrdup ("inputMediaPhoto"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "inputMediaGeoPoint", text_len)) { *R = tstrdup ("inputMediaGeoPoint"); return index; } else { index ++; }}
+  if (index == 4) { if (!strncmp (text, "inputMediaContact", text_len)) { *R = tstrdup ("inputMediaContact"); return index; } else { index ++; }}
+  if (index == 5) { if (!strncmp (text, "inputMediaUploadedVideo", text_len)) { *R = tstrdup ("inputMediaUploadedVideo"); return index; } else { index ++; }}
+  if (index == 6) { if (!strncmp (text, "inputMediaUploadedThumbVideo", text_len)) { *R = tstrdup ("inputMediaUploadedThumbVideo"); return index; } else { index ++; }}
+  if (index == 7) { if (!strncmp (text, "inputMediaVideo", text_len)) { *R = tstrdup ("inputMediaVideo"); return index; } else { index ++; }}
+  if (index == 8) { if (!strncmp (text, "inputMediaUploadedAudio", text_len)) { *R = tstrdup ("inputMediaUploadedAudio"); return index; } else { index ++; }}
+  if (index == 9) { if (!strncmp (text, "inputMediaAudio", text_len)) { *R = tstrdup ("inputMediaAudio"); return index; } else { index ++; }}
+  if (index == 10) { if (!strncmp (text, "inputMediaUploadedDocument", text_len)) { *R = tstrdup ("inputMediaUploadedDocument"); return index; } else { index ++; }}
+  if (index == 11) { if (!strncmp (text, "inputMediaUploadedThumbDocument", text_len)) { *R = tstrdup ("inputMediaUploadedThumbDocument"); return index; } else { index ++; }}
+  if (index == 12) { if (!strncmp (text, "inputMediaDocument", text_len)) { *R = tstrdup ("inputMediaDocument"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_input_notify_peer (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xb8bc5b0c: return skip_constructor_input_notify_peer (T);
+  case 0x193b4417: return skip_constructor_input_notify_users (T);
+  case 0x4a95e84e: return skip_constructor_input_notify_chats (T);
+  case 0xa429b886: return skip_constructor_input_notify_all (T);
+  case 0x4d8ddec8: return skip_constructor_input_notify_geo_chat_peer (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_input_notify_peer (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_input_notify_peer (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_notify_users (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_notify_chats (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_notify_all (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_notify_geo_chat_peer (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_input_notify_peer (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputNotifyPeer", cur_token_len)) {
+    out_int (0xb8bc5b0c);
+    local_next_token ();
+    if (store_constructor_input_notify_peer (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "inputNotifyUsers", cur_token_len)) {
+    out_int (0x193b4417);
+    local_next_token ();
+    if (store_constructor_input_notify_users (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "inputNotifyChats", cur_token_len)) {
+    out_int (0x4a95e84e);
+    local_next_token ();
+    if (store_constructor_input_notify_chats (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "inputNotifyAll", cur_token_len)) {
+    out_int (0xa429b886);
+    local_next_token ();
+    if (store_constructor_input_notify_all (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "inputNotifyGeoChatPeer", cur_token_len)) {
+    out_int (0x4d8ddec8);
+    local_next_token ();
+    if (store_constructor_input_notify_geo_chat_peer (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_input_notify_peer (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputNotifyPeer", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_notify_peer (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "inputNotifyUsers", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_notify_users (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "inputNotifyChats", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_notify_chats (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "inputNotifyAll", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_notify_all (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "inputNotifyGeoChatPeer", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_notify_geo_chat_peer (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_input_notify_peer (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xb8bc5b0c: res = fetch_constructor_input_notify_peer (T); break;
+  case 0x193b4417: res = fetch_constructor_input_notify_users (T); break;
+  case 0x4a95e84e: res = fetch_constructor_input_notify_chats (T); break;
+  case 0xa429b886: res = fetch_constructor_input_notify_all (T); break;
+  case 0x4d8ddec8: res = fetch_constructor_input_notify_geo_chat_peer (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_input_notify_peer (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_input_notify_peer (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_notify_peer (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_notify_users (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_notify_users (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_notify_chats (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_notify_chats (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_notify_all (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_notify_all (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_notify_geo_chat_peer (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_notify_geo_chat_peer (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_input_notify_peer (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_notify_peer); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputNotifyPeer", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_notify_peer (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "inputNotifyUsers", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_notify_users (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "inputNotifyChats", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_notify_chats (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "inputNotifyAll", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_notify_all (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "inputNotifyGeoChatPeer", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_notify_geo_chat_peer (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_input_notify_peer (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_notify_peer); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputNotifyPeer", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_notify_peer (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "inputNotifyUsers", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_notify_users (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "inputNotifyChats", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_notify_chats (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "inputNotifyAll", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_notify_all (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "inputNotifyGeoChatPeer", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_notify_geo_chat_peer (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_input_notify_peer (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "inputNotifyPeer", text_len)) { *R = tstrdup ("inputNotifyPeer"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "inputNotifyUsers", text_len)) { *R = tstrdup ("inputNotifyUsers"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "inputNotifyChats", text_len)) { *R = tstrdup ("inputNotifyChats"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "inputNotifyAll", text_len)) { *R = tstrdup ("inputNotifyAll"); return index; } else { index ++; }}
+  if (index == 4) { if (!strncmp (text, "inputNotifyGeoChatPeer", text_len)) { *R = tstrdup ("inputNotifyGeoChatPeer"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_input_peer (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x7f3b18ea: return skip_constructor_input_peer_empty (T);
+  case 0x7da07ec9: return skip_constructor_input_peer_self (T);
+  case 0x1023dbe8: return skip_constructor_input_peer_contact (T);
+  case 0x9b447325: return skip_constructor_input_peer_foreign (T);
+  case 0x179be863: return skip_constructor_input_peer_chat (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_input_peer (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_input_peer_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_peer_self (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_peer_contact (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_peer_foreign (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_peer_chat (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_input_peer (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "inputPeerEmpty", cur_token_len)) {
+    out_int (0x7f3b18ea);
+    local_next_token ();
+    if (store_constructor_input_peer_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "inputPeerSelf", cur_token_len)) {
+    out_int (0x7da07ec9);
+    local_next_token ();
+    if (store_constructor_input_peer_self (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "inputPeerContact", cur_token_len)) {
+    out_int (0x1023dbe8);
+    local_next_token ();
+    if (store_constructor_input_peer_contact (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "inputPeerForeign", cur_token_len)) {
+    out_int (0x9b447325);
+    local_next_token ();
+    if (store_constructor_input_peer_foreign (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "inputPeerChat", cur_token_len)) {
+    out_int (0x179be863);
+    local_next_token ();
+    if (store_constructor_input_peer_chat (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_input_peer (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "inputPeerEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_peer_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "inputPeerSelf", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_peer_self (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "inputPeerContact", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_peer_contact (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "inputPeerForeign", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_peer_foreign (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "inputPeerChat", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_peer_chat (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_input_peer (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x7f3b18ea: res = fetch_constructor_input_peer_empty (T); break;
+  case 0x7da07ec9: res = fetch_constructor_input_peer_self (T); break;
+  case 0x1023dbe8: res = fetch_constructor_input_peer_contact (T); break;
+  case 0x9b447325: res = fetch_constructor_input_peer_foreign (T); break;
+  case 0x179be863: res = fetch_constructor_input_peer_chat (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_input_peer (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_input_peer_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_peer_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_peer_self (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_peer_self (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_peer_contact (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_peer_contact (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_peer_foreign (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_peer_foreign (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_peer_chat (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_peer_chat (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_input_peer (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_peer); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "inputPeerEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_peer_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "inputPeerSelf", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_peer_self (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "inputPeerContact", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_peer_contact (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "inputPeerForeign", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_peer_foreign (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "inputPeerChat", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_peer_chat (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_input_peer (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_peer); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "inputPeerEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_peer_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "inputPeerSelf", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_peer_self (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "inputPeerContact", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_peer_contact (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "inputPeerForeign", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_peer_foreign (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "inputPeerChat", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_peer_chat (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_input_peer (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "inputPeerEmpty", text_len)) { *R = tstrdup ("inputPeerEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "inputPeerSelf", text_len)) { *R = tstrdup ("inputPeerSelf"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "inputPeerContact", text_len)) { *R = tstrdup ("inputPeerContact"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "inputPeerForeign", text_len)) { *R = tstrdup ("inputPeerForeign"); return index; } else { index ++; }}
+  if (index == 4) { if (!strncmp (text, "inputPeerChat", text_len)) { *R = tstrdup ("inputPeerChat"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_input_peer_notify_events (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xf03064d8: return skip_constructor_input_peer_notify_events_empty (T);
+  case 0xe86a2c74: return skip_constructor_input_peer_notify_events_all (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_input_peer_notify_events (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_input_peer_notify_events_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_peer_notify_events_all (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_input_peer_notify_events (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 26 && !memcmp (cur_token, "inputPeerNotifyEventsEmpty", cur_token_len)) {
+    out_int (0xf03064d8);
+    local_next_token ();
+    if (store_constructor_input_peer_notify_events_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "inputPeerNotifyEventsAll", cur_token_len)) {
+    out_int (0xe86a2c74);
+    local_next_token ();
+    if (store_constructor_input_peer_notify_events_all (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_input_peer_notify_events (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 26 && !memcmp (cur_token, "inputPeerNotifyEventsEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_peer_notify_events_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "inputPeerNotifyEventsAll", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_peer_notify_events_all (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_input_peer_notify_events (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xf03064d8: res = fetch_constructor_input_peer_notify_events_empty (T); break;
+  case 0xe86a2c74: res = fetch_constructor_input_peer_notify_events_all (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_input_peer_notify_events (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_input_peer_notify_events_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_peer_notify_events_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_peer_notify_events_all (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_peer_notify_events_all (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_input_peer_notify_events (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_peer_notify_events); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 26 && !memcmp (cur_token, "inputPeerNotifyEventsEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_peer_notify_events_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "inputPeerNotifyEventsAll", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_peer_notify_events_all (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_input_peer_notify_events (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_peer_notify_events); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 26 && !memcmp (cur_token, "inputPeerNotifyEventsEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_peer_notify_events_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "inputPeerNotifyEventsAll", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_peer_notify_events_all (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_input_peer_notify_events (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "inputPeerNotifyEventsEmpty", text_len)) { *R = tstrdup ("inputPeerNotifyEventsEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "inputPeerNotifyEventsAll", text_len)) { *R = tstrdup ("inputPeerNotifyEventsAll"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_input_peer_notify_settings (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x46a2ce98: return skip_constructor_input_peer_notify_settings (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_input_peer_notify_settings (struct paramed_type *T) {
+  if (skip_constructor_input_peer_notify_settings (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_input_peer_notify_settings (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "inputPeerNotifySettings", cur_token_len)) {
+    out_int (0x46a2ce98);
+    local_next_token ();
+    if (store_constructor_input_peer_notify_settings (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_input_peer_notify_settings (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "inputPeerNotifySettings", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_peer_notify_settings (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_input_peer_notify_settings (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x46a2ce98: res = fetch_constructor_input_peer_notify_settings (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_input_peer_notify_settings (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_input_peer_notify_settings (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_input_peer_notify_settings (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_peer_notify_settings); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "inputPeerNotifySettings", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_peer_notify_settings (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_input_peer_notify_settings (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_peer_notify_settings); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "inputPeerNotifySettings", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_peer_notify_settings (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_input_peer_notify_settings (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "inputPeerNotifySettings", text_len)) { *R = tstrdup ("inputPeerNotifySettings"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_input_photo (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x1cd7bf0d: return skip_constructor_input_photo_empty (T);
+  case 0xfb95c6c4: return skip_constructor_input_photo (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_input_photo (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_input_photo_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_photo (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_input_photo (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputPhotoEmpty", cur_token_len)) {
+    out_int (0x1cd7bf0d);
+    local_next_token ();
+    if (store_constructor_input_photo_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 10 && !memcmp (cur_token, "inputPhoto", cur_token_len)) {
+    out_int (0xfb95c6c4);
+    local_next_token ();
+    if (store_constructor_input_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_input_photo (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputPhotoEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_photo_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 10 && !memcmp (cur_token, "inputPhoto", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_input_photo (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x1cd7bf0d: res = fetch_constructor_input_photo_empty (T); break;
+  case 0xfb95c6c4: res = fetch_constructor_input_photo (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_input_photo (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_input_photo_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_photo_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_input_photo (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_photo); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputPhotoEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_photo_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 10 && !memcmp (cur_token, "inputPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_input_photo (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_photo); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputPhotoEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_photo_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 10 && !memcmp (cur_token, "inputPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_input_photo (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "inputPhotoEmpty", text_len)) { *R = tstrdup ("inputPhotoEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "inputPhoto", text_len)) { *R = tstrdup ("inputPhoto"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_input_photo_crop (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xade6b004: return skip_constructor_input_photo_crop_auto (T);
+  case 0xd9915325: return skip_constructor_input_photo_crop (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_input_photo_crop (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_input_photo_crop_auto (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_photo_crop (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_input_photo_crop (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputPhotoCropAuto", cur_token_len)) {
+    out_int (0xade6b004);
+    local_next_token ();
+    if (store_constructor_input_photo_crop_auto (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "inputPhotoCrop", cur_token_len)) {
+    out_int (0xd9915325);
+    local_next_token ();
+    if (store_constructor_input_photo_crop (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_input_photo_crop (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputPhotoCropAuto", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_photo_crop_auto (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "inputPhotoCrop", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_photo_crop (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_input_photo_crop (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xade6b004: res = fetch_constructor_input_photo_crop_auto (T); break;
+  case 0xd9915325: res = fetch_constructor_input_photo_crop (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_input_photo_crop (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_input_photo_crop_auto (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_photo_crop_auto (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_photo_crop (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_photo_crop (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_input_photo_crop (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_photo_crop); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputPhotoCropAuto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_photo_crop_auto (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "inputPhotoCrop", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_photo_crop (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_input_photo_crop (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_photo_crop); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "inputPhotoCropAuto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_photo_crop_auto (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "inputPhotoCrop", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_photo_crop (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_input_photo_crop (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "inputPhotoCropAuto", text_len)) { *R = tstrdup ("inputPhotoCropAuto"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "inputPhotoCrop", text_len)) { *R = tstrdup ("inputPhotoCrop"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_input_privacy_key (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x4f96cb18: return skip_constructor_input_privacy_key_status_timestamp (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_input_privacy_key (struct paramed_type *T) {
+  if (skip_constructor_input_privacy_key_status_timestamp (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_input_privacy_key (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 30 && !memcmp (cur_token, "inputPrivacyKeyStatusTimestamp", cur_token_len)) {
+    out_int (0x4f96cb18);
+    local_next_token ();
+    if (store_constructor_input_privacy_key_status_timestamp (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_input_privacy_key (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 30 && !memcmp (cur_token, "inputPrivacyKeyStatusTimestamp", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_privacy_key_status_timestamp (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_input_privacy_key (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x4f96cb18: res = fetch_constructor_input_privacy_key_status_timestamp (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_input_privacy_key (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_input_privacy_key_status_timestamp (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_input_privacy_key (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_privacy_key); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 30 && !memcmp (cur_token, "inputPrivacyKeyStatusTimestamp", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_privacy_key_status_timestamp (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_input_privacy_key (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_privacy_key); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 30 && !memcmp (cur_token, "inputPrivacyKeyStatusTimestamp", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_privacy_key_status_timestamp (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_input_privacy_key (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "inputPrivacyKeyStatusTimestamp", text_len)) { *R = tstrdup ("inputPrivacyKeyStatusTimestamp"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_input_privacy_rule (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x0d09e07b: return skip_constructor_input_privacy_value_allow_contacts (T);
+  case 0x184b35ce: return skip_constructor_input_privacy_value_allow_all (T);
+  case 0x131cc67f: return skip_constructor_input_privacy_value_allow_users (T);
+  case 0x0ba52007: return skip_constructor_input_privacy_value_disallow_contacts (T);
+  case 0xd66b66c9: return skip_constructor_input_privacy_value_disallow_all (T);
+  case 0x90110467: return skip_constructor_input_privacy_value_disallow_users (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_input_privacy_rule (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_input_privacy_value_allow_contacts (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_privacy_value_allow_all (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_privacy_value_allow_users (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_privacy_value_disallow_contacts (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_privacy_value_disallow_all (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_privacy_value_disallow_users (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_input_privacy_rule (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 30 && !memcmp (cur_token, "inputPrivacyValueAllowContacts", cur_token_len)) {
+    out_int (0x0d09e07b);
+    local_next_token ();
+    if (store_constructor_input_privacy_value_allow_contacts (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "inputPrivacyValueAllowAll", cur_token_len)) {
+    out_int (0x184b35ce);
+    local_next_token ();
+    if (store_constructor_input_privacy_value_allow_all (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "inputPrivacyValueAllowUsers", cur_token_len)) {
+    out_int (0x131cc67f);
+    local_next_token ();
+    if (store_constructor_input_privacy_value_allow_users (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 33 && !memcmp (cur_token, "inputPrivacyValueDisallowContacts", cur_token_len)) {
+    out_int (0x0ba52007);
+    local_next_token ();
+    if (store_constructor_input_privacy_value_disallow_contacts (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "inputPrivacyValueDisallowAll", cur_token_len)) {
+    out_int (0xd66b66c9);
+    local_next_token ();
+    if (store_constructor_input_privacy_value_disallow_all (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 30 && !memcmp (cur_token, "inputPrivacyValueDisallowUsers", cur_token_len)) {
+    out_int (0x90110467);
+    local_next_token ();
+    if (store_constructor_input_privacy_value_disallow_users (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_input_privacy_rule (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 30 && !memcmp (cur_token, "inputPrivacyValueAllowContacts", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_privacy_value_allow_contacts (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "inputPrivacyValueAllowAll", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_privacy_value_allow_all (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "inputPrivacyValueAllowUsers", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_privacy_value_allow_users (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 33 && !memcmp (cur_token, "inputPrivacyValueDisallowContacts", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_privacy_value_disallow_contacts (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "inputPrivacyValueDisallowAll", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_privacy_value_disallow_all (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 30 && !memcmp (cur_token, "inputPrivacyValueDisallowUsers", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_privacy_value_disallow_users (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_input_privacy_rule (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x0d09e07b: res = fetch_constructor_input_privacy_value_allow_contacts (T); break;
+  case 0x184b35ce: res = fetch_constructor_input_privacy_value_allow_all (T); break;
+  case 0x131cc67f: res = fetch_constructor_input_privacy_value_allow_users (T); break;
+  case 0x0ba52007: res = fetch_constructor_input_privacy_value_disallow_contacts (T); break;
+  case 0xd66b66c9: res = fetch_constructor_input_privacy_value_disallow_all (T); break;
+  case 0x90110467: res = fetch_constructor_input_privacy_value_disallow_users (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_input_privacy_rule (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_input_privacy_value_allow_contacts (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_privacy_value_allow_contacts (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_privacy_value_allow_all (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_privacy_value_allow_all (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_privacy_value_allow_users (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_privacy_value_allow_users (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_privacy_value_disallow_contacts (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_privacy_value_disallow_contacts (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_privacy_value_disallow_all (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_privacy_value_disallow_all (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_privacy_value_disallow_users (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_privacy_value_disallow_users (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_input_privacy_rule (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_privacy_rule); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 30 && !memcmp (cur_token, "inputPrivacyValueAllowContacts", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_privacy_value_allow_contacts (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "inputPrivacyValueAllowAll", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_privacy_value_allow_all (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "inputPrivacyValueAllowUsers", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_privacy_value_allow_users (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 33 && !memcmp (cur_token, "inputPrivacyValueDisallowContacts", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_privacy_value_disallow_contacts (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "inputPrivacyValueDisallowAll", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_privacy_value_disallow_all (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 30 && !memcmp (cur_token, "inputPrivacyValueDisallowUsers", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_privacy_value_disallow_users (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_input_privacy_rule (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_privacy_rule); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 30 && !memcmp (cur_token, "inputPrivacyValueAllowContacts", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_privacy_value_allow_contacts (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "inputPrivacyValueAllowAll", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_privacy_value_allow_all (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "inputPrivacyValueAllowUsers", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_privacy_value_allow_users (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 33 && !memcmp (cur_token, "inputPrivacyValueDisallowContacts", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_privacy_value_disallow_contacts (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "inputPrivacyValueDisallowAll", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_privacy_value_disallow_all (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 30 && !memcmp (cur_token, "inputPrivacyValueDisallowUsers", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_privacy_value_disallow_users (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_input_privacy_rule (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "inputPrivacyValueAllowContacts", text_len)) { *R = tstrdup ("inputPrivacyValueAllowContacts"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "inputPrivacyValueAllowAll", text_len)) { *R = tstrdup ("inputPrivacyValueAllowAll"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "inputPrivacyValueAllowUsers", text_len)) { *R = tstrdup ("inputPrivacyValueAllowUsers"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "inputPrivacyValueDisallowContacts", text_len)) { *R = tstrdup ("inputPrivacyValueDisallowContacts"); return index; } else { index ++; }}
+  if (index == 4) { if (!strncmp (text, "inputPrivacyValueDisallowAll", text_len)) { *R = tstrdup ("inputPrivacyValueDisallowAll"); return index; } else { index ++; }}
+  if (index == 5) { if (!strncmp (text, "inputPrivacyValueDisallowUsers", text_len)) { *R = tstrdup ("inputPrivacyValueDisallowUsers"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_input_user (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xb98886cf: return skip_constructor_input_user_empty (T);
+  case 0xf7c1b13f: return skip_constructor_input_user_self (T);
+  case 0x86e94f65: return skip_constructor_input_user_contact (T);
+  case 0x655e74ff: return skip_constructor_input_user_foreign (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_input_user (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_input_user_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_user_self (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_user_contact (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_user_foreign (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_input_user (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "inputUserEmpty", cur_token_len)) {
+    out_int (0xb98886cf);
+    local_next_token ();
+    if (store_constructor_input_user_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "inputUserSelf", cur_token_len)) {
+    out_int (0xf7c1b13f);
+    local_next_token ();
+    if (store_constructor_input_user_self (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "inputUserContact", cur_token_len)) {
+    out_int (0x86e94f65);
+    local_next_token ();
+    if (store_constructor_input_user_contact (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "inputUserForeign", cur_token_len)) {
+    out_int (0x655e74ff);
+    local_next_token ();
+    if (store_constructor_input_user_foreign (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_input_user (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "inputUserEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_user_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "inputUserSelf", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_user_self (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "inputUserContact", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_user_contact (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "inputUserForeign", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_user_foreign (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_input_user (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xb98886cf: res = fetch_constructor_input_user_empty (T); break;
+  case 0xf7c1b13f: res = fetch_constructor_input_user_self (T); break;
+  case 0x86e94f65: res = fetch_constructor_input_user_contact (T); break;
+  case 0x655e74ff: res = fetch_constructor_input_user_foreign (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_input_user (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_input_user_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_user_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_user_self (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_user_self (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_user_contact (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_user_contact (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_user_foreign (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_user_foreign (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_input_user (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_user); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "inputUserEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_user_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "inputUserSelf", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_user_self (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "inputUserContact", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_user_contact (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "inputUserForeign", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_user_foreign (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_input_user (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_user); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "inputUserEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_user_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "inputUserSelf", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_user_self (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "inputUserContact", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_user_contact (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "inputUserForeign", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_user_foreign (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_input_user (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "inputUserEmpty", text_len)) { *R = tstrdup ("inputUserEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "inputUserSelf", text_len)) { *R = tstrdup ("inputUserSelf"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "inputUserContact", text_len)) { *R = tstrdup ("inputUserContact"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "inputUserForeign", text_len)) { *R = tstrdup ("inputUserForeign"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_input_video (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x5508ec75: return skip_constructor_input_video_empty (T);
+  case 0xee579652: return skip_constructor_input_video (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_input_video (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_input_video_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_video (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_input_video (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputVideoEmpty", cur_token_len)) {
+    out_int (0x5508ec75);
+    local_next_token ();
+    if (store_constructor_input_video_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 10 && !memcmp (cur_token, "inputVideo", cur_token_len)) {
+    out_int (0xee579652);
+    local_next_token ();
+    if (store_constructor_input_video (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_input_video (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputVideoEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_video_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 10 && !memcmp (cur_token, "inputVideo", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_video (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_input_video (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x5508ec75: res = fetch_constructor_input_video_empty (T); break;
+  case 0xee579652: res = fetch_constructor_input_video (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_input_video (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_input_video_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_video_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_video (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_video (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_input_video (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_video); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputVideoEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_video_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 10 && !memcmp (cur_token, "inputVideo", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_video (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_input_video (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_input_video); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "inputVideoEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_video_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 10 && !memcmp (cur_token, "inputVideo", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_video (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_input_video (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "inputVideoEmpty", text_len)) { *R = tstrdup ("inputVideoEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "inputVideo", text_len)) { *R = tstrdup ("inputVideo"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_int (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xa8509bda: return skip_constructor_int (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_int (struct paramed_type *T) {
+  if (skip_constructor_int (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_int (struct paramed_type *T) {
+    out_int (0xa8509bda);
+  if (store_constructor_int (T) < 0) { return -1; }
+  return 0;
+}
+int store_type_bare_int (struct paramed_type *T) {
+  if (store_constructor_int (T) < 0) { return -1; }
+  return 0;
+}
+int fetch_type_int (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xa8509bda: res = fetch_constructor_int (T); break;
+  default: return -1;
+  }
+  return res;
+}
+int fetch_type_bare_int (struct paramed_type *T) {
+  if (fetch_constructor_int (T) >= 0) { return 0; }
+  return -1;
+}
+int autocomplete_type_int (struct paramed_type *T) {
+  if (autocomplete_constructor_int (T) < 0) { return -1; }
+  return 0;
+}
+int autocomplete_type_bare_int (struct paramed_type *T) {
+  if (autocomplete_constructor_int (T) < 0) { return -1; }
+  return 0;
+}
+int do_autocomplete_type_int (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "int", text_len)) { *R = tstrdup ("int"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_int128 (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x7d36c439: return skip_constructor_int128 (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_int128 (struct paramed_type *T) {
+  if (skip_constructor_int128 (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_int128 (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 6 && !memcmp (cur_token, "int128", cur_token_len)) {
+    out_int (0x7d36c439);
+    local_next_token ();
+    if (store_constructor_int128 (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_int128 (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 6 && !memcmp (cur_token, "int128", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_int128 (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_int128 (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x7d36c439: res = fetch_constructor_int128 (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_int128 (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_int128 (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_int128 (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_int128); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 6 && !memcmp (cur_token, "int128", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_int128 (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_int128 (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_int128); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 6 && !memcmp (cur_token, "int128", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_int128 (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_int128 (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "int128", text_len)) { *R = tstrdup ("int128"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_int256 (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xf2c798b3: return skip_constructor_int256 (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_int256 (struct paramed_type *T) {
+  if (skip_constructor_int256 (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_int256 (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 6 && !memcmp (cur_token, "int256", cur_token_len)) {
+    out_int (0xf2c798b3);
+    local_next_token ();
+    if (store_constructor_int256 (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_int256 (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 6 && !memcmp (cur_token, "int256", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_int256 (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_int256 (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xf2c798b3: res = fetch_constructor_int256 (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_int256 (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_int256 (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_int256 (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_int256); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 6 && !memcmp (cur_token, "int256", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_int256 (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_int256 (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_int256); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 6 && !memcmp (cur_token, "int256", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_int256 (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_int256 (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "int256", text_len)) { *R = tstrdup ("int256"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_long (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x22076cba: return skip_constructor_long (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_long (struct paramed_type *T) {
+  if (skip_constructor_long (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_long (struct paramed_type *T) {
+    out_int (0x22076cba);
+  if (store_constructor_long (T) < 0) { return -1; }
+  return 0;
+}
+int store_type_bare_long (struct paramed_type *T) {
+  if (store_constructor_long (T) < 0) { return -1; }
+  return 0;
+}
+int fetch_type_long (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x22076cba: res = fetch_constructor_long (T); break;
+  default: return -1;
+  }
+  return res;
+}
+int fetch_type_bare_long (struct paramed_type *T) {
+  if (fetch_constructor_long (T) >= 0) { return 0; }
+  return -1;
+}
+int autocomplete_type_long (struct paramed_type *T) {
+  if (autocomplete_constructor_long (T) < 0) { return -1; }
+  return 0;
+}
+int autocomplete_type_bare_long (struct paramed_type *T) {
+  if (autocomplete_constructor_long (T) < 0) { return -1; }
+  return 0;
+}
+int do_autocomplete_type_long (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "long", text_len)) { *R = tstrdup ("long"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_message (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x83e5de54: return skip_constructor_message_empty (T);
+  case 0x567699b3: return skip_constructor_message (T);
+  case 0xa367e716: return skip_constructor_message_forwarded (T);
+  case 0x1d86f70e: return skip_constructor_message_service (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_message (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_message_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_forwarded (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_service (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_message (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 12 && !memcmp (cur_token, "messageEmpty", cur_token_len)) {
+    out_int (0x83e5de54);
+    local_next_token ();
+    if (store_constructor_message_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) {
+    out_int (0x567699b3);
+    local_next_token ();
+    if (store_constructor_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "messageForwarded", cur_token_len)) {
+    out_int (0xa367e716);
+    local_next_token ();
+    if (store_constructor_message_forwarded (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "messageService", cur_token_len)) {
+    out_int (0x1d86f70e);
+    local_next_token ();
+    if (store_constructor_message_service (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_message (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 12 && !memcmp (cur_token, "messageEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_message_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "messageForwarded", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_message_forwarded (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "messageService", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_message_service (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_message (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x83e5de54: res = fetch_constructor_message_empty (T); break;
+  case 0x567699b3: res = fetch_constructor_message (T); break;
+  case 0xa367e716: res = fetch_constructor_message_forwarded (T); break;
+  case 0x1d86f70e: res = fetch_constructor_message_service (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_message (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_message_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_forwarded (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_forwarded (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_service (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_service (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_message (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_message); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 12 && !memcmp (cur_token, "messageEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "messageForwarded", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_forwarded (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "messageService", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_service (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_message (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_message); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 12 && !memcmp (cur_token, "messageEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "messageForwarded", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_forwarded (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "messageService", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_service (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_message (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "messageEmpty", text_len)) { *R = tstrdup ("messageEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "message", text_len)) { *R = tstrdup ("message"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "messageForwarded", text_len)) { *R = tstrdup ("messageForwarded"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "messageService", text_len)) { *R = tstrdup ("messageService"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_message_action (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xb6aef7b0: return skip_constructor_message_action_empty (T);
+  case 0xa6638b9a: return skip_constructor_message_action_chat_create (T);
+  case 0xb5a1ce5a: return skip_constructor_message_action_chat_edit_title (T);
+  case 0x7fcb13a8: return skip_constructor_message_action_chat_edit_photo (T);
+  case 0x95e3fbef: return skip_constructor_message_action_chat_delete_photo (T);
+  case 0x5e3cfc4b: return skip_constructor_message_action_chat_add_user (T);
+  case 0xb2ae9b0c: return skip_constructor_message_action_chat_delete_user (T);
+  case 0x6f038ebc: return skip_constructor_message_action_geo_chat_create (T);
+  case 0x0c7d53de: return skip_constructor_message_action_geo_chat_checkin (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_message_action (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_message_action_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_action_chat_create (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_action_chat_edit_title (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_action_chat_edit_photo (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_action_chat_delete_photo (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_action_chat_add_user (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_action_chat_delete_user (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_action_geo_chat_create (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_action_geo_chat_checkin (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_message_action (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "messageActionEmpty", cur_token_len)) {
+    out_int (0xb6aef7b0);
+    local_next_token ();
+    if (store_constructor_message_action_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "messageActionChatCreate", cur_token_len)) {
+    out_int (0xa6638b9a);
+    local_next_token ();
+    if (store_constructor_message_action_chat_create (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "messageActionChatEditTitle", cur_token_len)) {
+    out_int (0xb5a1ce5a);
+    local_next_token ();
+    if (store_constructor_message_action_chat_edit_title (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "messageActionChatEditPhoto", cur_token_len)) {
+    out_int (0x7fcb13a8);
+    local_next_token ();
+    if (store_constructor_message_action_chat_edit_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "messageActionChatDeletePhoto", cur_token_len)) {
+    out_int (0x95e3fbef);
+    local_next_token ();
+    if (store_constructor_message_action_chat_delete_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "messageActionChatAddUser", cur_token_len)) {
+    out_int (0x5e3cfc4b);
+    local_next_token ();
+    if (store_constructor_message_action_chat_add_user (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "messageActionChatDeleteUser", cur_token_len)) {
+    out_int (0xb2ae9b0c);
+    local_next_token ();
+    if (store_constructor_message_action_chat_delete_user (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "messageActionGeoChatCreate", cur_token_len)) {
+    out_int (0x6f038ebc);
+    local_next_token ();
+    if (store_constructor_message_action_geo_chat_create (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "messageActionGeoChatCheckin", cur_token_len)) {
+    out_int (0x0c7d53de);
+    local_next_token ();
+    if (store_constructor_message_action_geo_chat_checkin (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_message_action (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "messageActionEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_message_action_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "messageActionChatCreate", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_message_action_chat_create (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "messageActionChatEditTitle", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_message_action_chat_edit_title (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "messageActionChatEditPhoto", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_message_action_chat_edit_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "messageActionChatDeletePhoto", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_message_action_chat_delete_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "messageActionChatAddUser", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_message_action_chat_add_user (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "messageActionChatDeleteUser", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_message_action_chat_delete_user (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "messageActionGeoChatCreate", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_message_action_geo_chat_create (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "messageActionGeoChatCheckin", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_message_action_geo_chat_checkin (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_message_action (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xb6aef7b0: res = fetch_constructor_message_action_empty (T); break;
+  case 0xa6638b9a: res = fetch_constructor_message_action_chat_create (T); break;
+  case 0xb5a1ce5a: res = fetch_constructor_message_action_chat_edit_title (T); break;
+  case 0x7fcb13a8: res = fetch_constructor_message_action_chat_edit_photo (T); break;
+  case 0x95e3fbef: res = fetch_constructor_message_action_chat_delete_photo (T); break;
+  case 0x5e3cfc4b: res = fetch_constructor_message_action_chat_add_user (T); break;
+  case 0xb2ae9b0c: res = fetch_constructor_message_action_chat_delete_user (T); break;
+  case 0x6f038ebc: res = fetch_constructor_message_action_geo_chat_create (T); break;
+  case 0x0c7d53de: res = fetch_constructor_message_action_geo_chat_checkin (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_message_action (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_message_action_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_action_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_action_chat_create (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_action_chat_create (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_action_chat_edit_title (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_action_chat_edit_title (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_action_chat_edit_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_action_chat_edit_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_action_chat_delete_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_action_chat_delete_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_action_chat_add_user (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_action_chat_add_user (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_action_chat_delete_user (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_action_chat_delete_user (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_action_geo_chat_create (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_action_geo_chat_create (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_action_geo_chat_checkin (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_action_geo_chat_checkin (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_message_action (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_message_action); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "messageActionEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_action_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "messageActionChatCreate", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_action_chat_create (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "messageActionChatEditTitle", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_action_chat_edit_title (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "messageActionChatEditPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_action_chat_edit_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "messageActionChatDeletePhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_action_chat_delete_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "messageActionChatAddUser", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_action_chat_add_user (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "messageActionChatDeleteUser", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_action_chat_delete_user (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "messageActionGeoChatCreate", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_action_geo_chat_create (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "messageActionGeoChatCheckin", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_action_geo_chat_checkin (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_message_action (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_message_action); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "messageActionEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_action_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "messageActionChatCreate", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_action_chat_create (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "messageActionChatEditTitle", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_action_chat_edit_title (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "messageActionChatEditPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_action_chat_edit_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "messageActionChatDeletePhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_action_chat_delete_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "messageActionChatAddUser", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_action_chat_add_user (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "messageActionChatDeleteUser", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_action_chat_delete_user (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "messageActionGeoChatCreate", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_action_geo_chat_create (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "messageActionGeoChatCheckin", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_action_geo_chat_checkin (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_message_action (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "messageActionEmpty", text_len)) { *R = tstrdup ("messageActionEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "messageActionChatCreate", text_len)) { *R = tstrdup ("messageActionChatCreate"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "messageActionChatEditTitle", text_len)) { *R = tstrdup ("messageActionChatEditTitle"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "messageActionChatEditPhoto", text_len)) { *R = tstrdup ("messageActionChatEditPhoto"); return index; } else { index ++; }}
+  if (index == 4) { if (!strncmp (text, "messageActionChatDeletePhoto", text_len)) { *R = tstrdup ("messageActionChatDeletePhoto"); return index; } else { index ++; }}
+  if (index == 5) { if (!strncmp (text, "messageActionChatAddUser", text_len)) { *R = tstrdup ("messageActionChatAddUser"); return index; } else { index ++; }}
+  if (index == 6) { if (!strncmp (text, "messageActionChatDeleteUser", text_len)) { *R = tstrdup ("messageActionChatDeleteUser"); return index; } else { index ++; }}
+  if (index == 7) { if (!strncmp (text, "messageActionGeoChatCreate", text_len)) { *R = tstrdup ("messageActionGeoChatCreate"); return index; } else { index ++; }}
+  if (index == 8) { if (!strncmp (text, "messageActionGeoChatCheckin", text_len)) { *R = tstrdup ("messageActionGeoChatCheckin"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_message_media (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x3ded6320: return skip_constructor_message_media_empty (T);
+  case 0xc8c45a2a: return skip_constructor_message_media_photo (T);
+  case 0xa2d24290: return skip_constructor_message_media_video (T);
+  case 0x56e0d474: return skip_constructor_message_media_geo (T);
+  case 0x5e7d2f39: return skip_constructor_message_media_contact (T);
+  case 0x29632a36: return skip_constructor_message_media_unsupported (T);
+  case 0x2fda2204: return skip_constructor_message_media_document (T);
+  case 0xc6b68300: return skip_constructor_message_media_audio (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_message_media (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_message_media_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_media_photo (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_media_video (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_media_geo (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_media_contact (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_media_unsupported (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_media_document (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_media_audio (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_message_media (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaEmpty", cur_token_len)) {
+    out_int (0x3ded6320);
+    local_next_token ();
+    if (store_constructor_message_media_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaPhoto", cur_token_len)) {
+    out_int (0xc8c45a2a);
+    local_next_token ();
+    if (store_constructor_message_media_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaVideo", cur_token_len)) {
+    out_int (0xa2d24290);
+    local_next_token ();
+    if (store_constructor_message_media_video (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "messageMediaGeo", cur_token_len)) {
+    out_int (0x56e0d474);
+    local_next_token ();
+    if (store_constructor_message_media_geo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "messageMediaContact", cur_token_len)) {
+    out_int (0x5e7d2f39);
+    local_next_token ();
+    if (store_constructor_message_media_contact (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "messageMediaUnsupported", cur_token_len)) {
+    out_int (0x29632a36);
+    local_next_token ();
+    if (store_constructor_message_media_unsupported (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "messageMediaDocument", cur_token_len)) {
+    out_int (0x2fda2204);
+    local_next_token ();
+    if (store_constructor_message_media_document (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaAudio", cur_token_len)) {
+    out_int (0xc6b68300);
+    local_next_token ();
+    if (store_constructor_message_media_audio (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_message_media (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_message_media_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaPhoto", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_message_media_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaVideo", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_message_media_video (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "messageMediaGeo", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_message_media_geo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "messageMediaContact", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_message_media_contact (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "messageMediaUnsupported", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_message_media_unsupported (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "messageMediaDocument", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_message_media_document (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaAudio", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_message_media_audio (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_message_media (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x3ded6320: res = fetch_constructor_message_media_empty (T); break;
+  case 0xc8c45a2a: res = fetch_constructor_message_media_photo (T); break;
+  case 0xa2d24290: res = fetch_constructor_message_media_video (T); break;
+  case 0x56e0d474: res = fetch_constructor_message_media_geo (T); break;
+  case 0x5e7d2f39: res = fetch_constructor_message_media_contact (T); break;
+  case 0x29632a36: res = fetch_constructor_message_media_unsupported (T); break;
+  case 0x2fda2204: res = fetch_constructor_message_media_document (T); break;
+  case 0xc6b68300: res = fetch_constructor_message_media_audio (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_message_media (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_message_media_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_media_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_media_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_media_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_media_video (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_media_video (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_media_geo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_media_geo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_media_contact (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_media_contact (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_media_unsupported (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_media_unsupported (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_media_document (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_media_document (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_message_media_audio (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_message_media_audio (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_message_media (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_message_media); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_media_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_media_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaVideo", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_media_video (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "messageMediaGeo", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_media_geo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "messageMediaContact", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_media_contact (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "messageMediaUnsupported", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_media_unsupported (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "messageMediaDocument", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_media_document (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaAudio", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_media_audio (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_message_media (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_message_media); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_media_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_media_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaVideo", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_media_video (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "messageMediaGeo", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_media_geo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "messageMediaContact", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_media_contact (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "messageMediaUnsupported", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_media_unsupported (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "messageMediaDocument", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_media_document (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messageMediaAudio", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_message_media_audio (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_message_media (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "messageMediaEmpty", text_len)) { *R = tstrdup ("messageMediaEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "messageMediaPhoto", text_len)) { *R = tstrdup ("messageMediaPhoto"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "messageMediaVideo", text_len)) { *R = tstrdup ("messageMediaVideo"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "messageMediaGeo", text_len)) { *R = tstrdup ("messageMediaGeo"); return index; } else { index ++; }}
+  if (index == 4) { if (!strncmp (text, "messageMediaContact", text_len)) { *R = tstrdup ("messageMediaContact"); return index; } else { index ++; }}
+  if (index == 5) { if (!strncmp (text, "messageMediaUnsupported", text_len)) { *R = tstrdup ("messageMediaUnsupported"); return index; } else { index ++; }}
+  if (index == 6) { if (!strncmp (text, "messageMediaDocument", text_len)) { *R = tstrdup ("messageMediaDocument"); return index; } else { index ++; }}
+  if (index == 7) { if (!strncmp (text, "messageMediaAudio", text_len)) { *R = tstrdup ("messageMediaAudio"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_messages_filter (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x57e2f66c: return skip_constructor_input_messages_filter_empty (T);
+  case 0x9609a51c: return skip_constructor_input_messages_filter_photos (T);
+  case 0x9fc00e65: return skip_constructor_input_messages_filter_video (T);
+  case 0x56e9f0e4: return skip_constructor_input_messages_filter_photo_video (T);
+  case 0x9eddf188: return skip_constructor_input_messages_filter_document (T);
+  case 0xcfc87522: return skip_constructor_input_messages_filter_audio (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_messages_filter (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_input_messages_filter_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_messages_filter_photos (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_messages_filter_video (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_messages_filter_photo_video (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_messages_filter_document (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_messages_filter_audio (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_messages_filter (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 24 && !memcmp (cur_token, "inputMessagesFilterEmpty", cur_token_len)) {
+    out_int (0x57e2f66c);
+    local_next_token ();
+    if (store_constructor_input_messages_filter_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "inputMessagesFilterPhotos", cur_token_len)) {
+    out_int (0x9609a51c);
+    local_next_token ();
+    if (store_constructor_input_messages_filter_photos (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "inputMessagesFilterVideo", cur_token_len)) {
+    out_int (0x9fc00e65);
+    local_next_token ();
+    if (store_constructor_input_messages_filter_video (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "inputMessagesFilterPhotoVideo", cur_token_len)) {
+    out_int (0x56e9f0e4);
+    local_next_token ();
+    if (store_constructor_input_messages_filter_photo_video (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "inputMessagesFilterDocument", cur_token_len)) {
+    out_int (0x9eddf188);
+    local_next_token ();
+    if (store_constructor_input_messages_filter_document (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "inputMessagesFilterAudio", cur_token_len)) {
+    out_int (0xcfc87522);
+    local_next_token ();
+    if (store_constructor_input_messages_filter_audio (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_messages_filter (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 24 && !memcmp (cur_token, "inputMessagesFilterEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_messages_filter_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "inputMessagesFilterPhotos", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_messages_filter_photos (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "inputMessagesFilterVideo", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_messages_filter_video (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "inputMessagesFilterPhotoVideo", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_messages_filter_photo_video (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "inputMessagesFilterDocument", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_messages_filter_document (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "inputMessagesFilterAudio", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_input_messages_filter_audio (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_messages_filter (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x57e2f66c: res = fetch_constructor_input_messages_filter_empty (T); break;
+  case 0x9609a51c: res = fetch_constructor_input_messages_filter_photos (T); break;
+  case 0x9fc00e65: res = fetch_constructor_input_messages_filter_video (T); break;
+  case 0x56e9f0e4: res = fetch_constructor_input_messages_filter_photo_video (T); break;
+  case 0x9eddf188: res = fetch_constructor_input_messages_filter_document (T); break;
+  case 0xcfc87522: res = fetch_constructor_input_messages_filter_audio (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_messages_filter (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_input_messages_filter_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_messages_filter_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_messages_filter_photos (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_messages_filter_photos (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_messages_filter_video (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_messages_filter_video (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_messages_filter_photo_video (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_messages_filter_photo_video (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_messages_filter_document (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_messages_filter_document (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_input_messages_filter_audio (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_input_messages_filter_audio (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_messages_filter (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_filter); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 24 && !memcmp (cur_token, "inputMessagesFilterEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_messages_filter_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "inputMessagesFilterPhotos", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_messages_filter_photos (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "inputMessagesFilterVideo", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_messages_filter_video (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "inputMessagesFilterPhotoVideo", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_messages_filter_photo_video (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "inputMessagesFilterDocument", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_messages_filter_document (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "inputMessagesFilterAudio", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_messages_filter_audio (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_messages_filter (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_filter); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 24 && !memcmp (cur_token, "inputMessagesFilterEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_messages_filter_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "inputMessagesFilterPhotos", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_messages_filter_photos (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "inputMessagesFilterVideo", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_messages_filter_video (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "inputMessagesFilterPhotoVideo", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_messages_filter_photo_video (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "inputMessagesFilterDocument", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_messages_filter_document (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "inputMessagesFilterAudio", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_input_messages_filter_audio (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_messages_filter (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "inputMessagesFilterEmpty", text_len)) { *R = tstrdup ("inputMessagesFilterEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "inputMessagesFilterPhotos", text_len)) { *R = tstrdup ("inputMessagesFilterPhotos"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "inputMessagesFilterVideo", text_len)) { *R = tstrdup ("inputMessagesFilterVideo"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "inputMessagesFilterPhotoVideo", text_len)) { *R = tstrdup ("inputMessagesFilterPhotoVideo"); return index; } else { index ++; }}
+  if (index == 4) { if (!strncmp (text, "inputMessagesFilterDocument", text_len)) { *R = tstrdup ("inputMessagesFilterDocument"); return index; } else { index ++; }}
+  if (index == 5) { if (!strncmp (text, "inputMessagesFilterAudio", text_len)) { *R = tstrdup ("inputMessagesFilterAudio"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_nearest_dc (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x8e1a1775: return skip_constructor_nearest_dc (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_nearest_dc (struct paramed_type *T) {
+  if (skip_constructor_nearest_dc (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_nearest_dc (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "nearestDc", cur_token_len)) {
+    out_int (0x8e1a1775);
+    local_next_token ();
+    if (store_constructor_nearest_dc (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_nearest_dc (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "nearestDc", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_nearest_dc (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_nearest_dc (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x8e1a1775: res = fetch_constructor_nearest_dc (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_nearest_dc (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_nearest_dc (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_nearest_dc (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_nearest_dc); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "nearestDc", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_nearest_dc (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_nearest_dc (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_nearest_dc); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "nearestDc", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_nearest_dc (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_nearest_dc (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "nearestDc", text_len)) { *R = tstrdup ("nearestDc"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_notify_peer (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x9fd40bd8: return skip_constructor_notify_peer (T);
+  case 0xb4c83b4c: return skip_constructor_notify_users (T);
+  case 0xc007cec3: return skip_constructor_notify_chats (T);
+  case 0x74d07c60: return skip_constructor_notify_all (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_notify_peer (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_notify_peer (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_notify_users (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_notify_chats (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_notify_all (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_notify_peer (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 10 && !memcmp (cur_token, "notifyPeer", cur_token_len)) {
+    out_int (0x9fd40bd8);
+    local_next_token ();
+    if (store_constructor_notify_peer (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "notifyUsers", cur_token_len)) {
+    out_int (0xb4c83b4c);
+    local_next_token ();
+    if (store_constructor_notify_users (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "notifyChats", cur_token_len)) {
+    out_int (0xc007cec3);
+    local_next_token ();
+    if (store_constructor_notify_chats (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 9 && !memcmp (cur_token, "notifyAll", cur_token_len)) {
+    out_int (0x74d07c60);
+    local_next_token ();
+    if (store_constructor_notify_all (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_notify_peer (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 10 && !memcmp (cur_token, "notifyPeer", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_notify_peer (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "notifyUsers", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_notify_users (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "notifyChats", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_notify_chats (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 9 && !memcmp (cur_token, "notifyAll", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_notify_all (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_notify_peer (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x9fd40bd8: res = fetch_constructor_notify_peer (T); break;
+  case 0xb4c83b4c: res = fetch_constructor_notify_users (T); break;
+  case 0xc007cec3: res = fetch_constructor_notify_chats (T); break;
+  case 0x74d07c60: res = fetch_constructor_notify_all (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_notify_peer (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_notify_peer (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_notify_peer (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_notify_users (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_notify_users (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_notify_chats (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_notify_chats (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_notify_all (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_notify_all (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_notify_peer (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_notify_peer); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 10 && !memcmp (cur_token, "notifyPeer", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_notify_peer (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "notifyUsers", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_notify_users (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "notifyChats", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_notify_chats (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 9 && !memcmp (cur_token, "notifyAll", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_notify_all (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_notify_peer (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_notify_peer); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 10 && !memcmp (cur_token, "notifyPeer", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_notify_peer (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "notifyUsers", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_notify_users (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "notifyChats", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_notify_chats (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 9 && !memcmp (cur_token, "notifyAll", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_notify_all (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_notify_peer (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "notifyPeer", text_len)) { *R = tstrdup ("notifyPeer"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "notifyUsers", text_len)) { *R = tstrdup ("notifyUsers"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "notifyChats", text_len)) { *R = tstrdup ("notifyChats"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "notifyAll", text_len)) { *R = tstrdup ("notifyAll"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_null (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x56730bcc: return skip_constructor_null (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_null (struct paramed_type *T) {
+  if (skip_constructor_null (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_null (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 4 && !memcmp (cur_token, "null", cur_token_len)) {
+    out_int (0x56730bcc);
+    local_next_token ();
+    if (store_constructor_null (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_null (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 4 && !memcmp (cur_token, "null", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_null (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_null (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x56730bcc: res = fetch_constructor_null (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_null (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_null (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_null (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_null); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 4 && !memcmp (cur_token, "null", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_null (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_null (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_null); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 4 && !memcmp (cur_token, "null", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_null (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_null (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "null", text_len)) { *R = tstrdup ("null"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_p_q_inner_data (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x83c95aec: return skip_constructor_p_q_inner_data (T);
+  case 0x3c6a84d4: return skip_constructor_p_q_inner_data_temp (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_p_q_inner_data (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_p_q_inner_data (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_p_q_inner_data_temp (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_p_q_inner_data (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "p_q_inner_data", cur_token_len)) {
+    out_int (0x83c95aec);
+    local_next_token ();
+    if (store_constructor_p_q_inner_data (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "p_q_inner_data_temp", cur_token_len)) {
+    out_int (0x3c6a84d4);
+    local_next_token ();
+    if (store_constructor_p_q_inner_data_temp (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_p_q_inner_data (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "p_q_inner_data", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_p_q_inner_data (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "p_q_inner_data_temp", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_p_q_inner_data_temp (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_p_q_inner_data (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x83c95aec: res = fetch_constructor_p_q_inner_data (T); break;
+  case 0x3c6a84d4: res = fetch_constructor_p_q_inner_data_temp (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_p_q_inner_data (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_p_q_inner_data (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_p_q_inner_data (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_p_q_inner_data_temp (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_p_q_inner_data_temp (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_p_q_inner_data (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_p_q_inner_data); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "p_q_inner_data", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_p_q_inner_data (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "p_q_inner_data_temp", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_p_q_inner_data_temp (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_p_q_inner_data (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_p_q_inner_data); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "p_q_inner_data", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_p_q_inner_data (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "p_q_inner_data_temp", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_p_q_inner_data_temp (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_p_q_inner_data (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "p_q_inner_data", text_len)) { *R = tstrdup ("p_q_inner_data"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "p_q_inner_data_temp", text_len)) { *R = tstrdup ("p_q_inner_data_temp"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_peer (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x9db1bc6d: return skip_constructor_peer_user (T);
+  case 0xbad0e5bb: return skip_constructor_peer_chat (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_peer (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_peer_user (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_peer_chat (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_peer (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 8 && !memcmp (cur_token, "peerUser", cur_token_len)) {
+    out_int (0x9db1bc6d);
+    local_next_token ();
+    if (store_constructor_peer_user (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 8 && !memcmp (cur_token, "peerChat", cur_token_len)) {
+    out_int (0xbad0e5bb);
+    local_next_token ();
+    if (store_constructor_peer_chat (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_peer (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 8 && !memcmp (cur_token, "peerUser", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_peer_user (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 8 && !memcmp (cur_token, "peerChat", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_peer_chat (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_peer (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x9db1bc6d: res = fetch_constructor_peer_user (T); break;
+  case 0xbad0e5bb: res = fetch_constructor_peer_chat (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_peer (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_peer_user (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_peer_user (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_peer_chat (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_peer_chat (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_peer (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_peer); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 8 && !memcmp (cur_token, "peerUser", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_peer_user (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 8 && !memcmp (cur_token, "peerChat", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_peer_chat (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_peer (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_peer); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 8 && !memcmp (cur_token, "peerUser", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_peer_user (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 8 && !memcmp (cur_token, "peerChat", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_peer_chat (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_peer (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "peerUser", text_len)) { *R = tstrdup ("peerUser"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "peerChat", text_len)) { *R = tstrdup ("peerChat"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_peer_notify_events (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xadd53cb3: return skip_constructor_peer_notify_events_empty (T);
+  case 0x6d1ded88: return skip_constructor_peer_notify_events_all (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_peer_notify_events (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_peer_notify_events_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_peer_notify_events_all (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_peer_notify_events (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 21 && !memcmp (cur_token, "peerNotifyEventsEmpty", cur_token_len)) {
+    out_int (0xadd53cb3);
+    local_next_token ();
+    if (store_constructor_peer_notify_events_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "peerNotifyEventsAll", cur_token_len)) {
+    out_int (0x6d1ded88);
+    local_next_token ();
+    if (store_constructor_peer_notify_events_all (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_peer_notify_events (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 21 && !memcmp (cur_token, "peerNotifyEventsEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_peer_notify_events_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "peerNotifyEventsAll", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_peer_notify_events_all (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_peer_notify_events (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xadd53cb3: res = fetch_constructor_peer_notify_events_empty (T); break;
+  case 0x6d1ded88: res = fetch_constructor_peer_notify_events_all (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_peer_notify_events (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_peer_notify_events_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_peer_notify_events_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_peer_notify_events_all (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_peer_notify_events_all (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_peer_notify_events (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_peer_notify_events); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 21 && !memcmp (cur_token, "peerNotifyEventsEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_peer_notify_events_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "peerNotifyEventsAll", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_peer_notify_events_all (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_peer_notify_events (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_peer_notify_events); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 21 && !memcmp (cur_token, "peerNotifyEventsEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_peer_notify_events_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "peerNotifyEventsAll", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_peer_notify_events_all (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_peer_notify_events (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "peerNotifyEventsEmpty", text_len)) { *R = tstrdup ("peerNotifyEventsEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "peerNotifyEventsAll", text_len)) { *R = tstrdup ("peerNotifyEventsAll"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_peer_notify_settings (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x70a68512: return skip_constructor_peer_notify_settings_empty (T);
+  case 0x8d5e11ee: return skip_constructor_peer_notify_settings (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_peer_notify_settings (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_peer_notify_settings_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_peer_notify_settings (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_peer_notify_settings (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "peerNotifySettingsEmpty", cur_token_len)) {
+    out_int (0x70a68512);
+    local_next_token ();
+    if (store_constructor_peer_notify_settings_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "peerNotifySettings", cur_token_len)) {
+    out_int (0x8d5e11ee);
+    local_next_token ();
+    if (store_constructor_peer_notify_settings (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_peer_notify_settings (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "peerNotifySettingsEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_peer_notify_settings_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "peerNotifySettings", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_peer_notify_settings (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_peer_notify_settings (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x70a68512: res = fetch_constructor_peer_notify_settings_empty (T); break;
+  case 0x8d5e11ee: res = fetch_constructor_peer_notify_settings (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_peer_notify_settings (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_peer_notify_settings_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_peer_notify_settings_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_peer_notify_settings (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_peer_notify_settings (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_peer_notify_settings (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_peer_notify_settings); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "peerNotifySettingsEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_peer_notify_settings_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "peerNotifySettings", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_peer_notify_settings (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_peer_notify_settings (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_peer_notify_settings); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "peerNotifySettingsEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_peer_notify_settings_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "peerNotifySettings", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_peer_notify_settings (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_peer_notify_settings (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "peerNotifySettingsEmpty", text_len)) { *R = tstrdup ("peerNotifySettingsEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "peerNotifySettings", text_len)) { *R = tstrdup ("peerNotifySettings"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_photo (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x2331b22d: return skip_constructor_photo_empty (T);
+  case 0x22b56751: return skip_constructor_photo (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_photo (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_photo_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_photo (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_photo (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 10 && !memcmp (cur_token, "photoEmpty", cur_token_len)) {
+    out_int (0x2331b22d);
+    local_next_token ();
+    if (store_constructor_photo_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) {
+    out_int (0x22b56751);
+    local_next_token ();
+    if (store_constructor_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_photo (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 10 && !memcmp (cur_token, "photoEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_photo_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_photo (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x2331b22d: res = fetch_constructor_photo_empty (T); break;
+  case 0x22b56751: res = fetch_constructor_photo (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_photo (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_photo_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_photo_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_photo (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_photo); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 10 && !memcmp (cur_token, "photoEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_photo_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_photo (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_photo); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 10 && !memcmp (cur_token, "photoEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_photo_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_photo (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "photoEmpty", text_len)) { *R = tstrdup ("photoEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "photo", text_len)) { *R = tstrdup ("photo"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_photo_size (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x0e17e23c: return skip_constructor_photo_size_empty (T);
+  case 0x77bfb61b: return skip_constructor_photo_size (T);
+  case 0xe9a734fa: return skip_constructor_photo_cached_size (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_photo_size (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_photo_size_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_photo_size (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_photo_cached_size (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_photo_size (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "photoSizeEmpty", cur_token_len)) {
+    out_int (0x0e17e23c);
+    local_next_token ();
+    if (store_constructor_photo_size_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 9 && !memcmp (cur_token, "photoSize", cur_token_len)) {
+    out_int (0x77bfb61b);
+    local_next_token ();
+    if (store_constructor_photo_size (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "photoCachedSize", cur_token_len)) {
+    out_int (0xe9a734fa);
+    local_next_token ();
+    if (store_constructor_photo_cached_size (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_photo_size (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "photoSizeEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_photo_size_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 9 && !memcmp (cur_token, "photoSize", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_photo_size (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "photoCachedSize", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_photo_cached_size (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_photo_size (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x0e17e23c: res = fetch_constructor_photo_size_empty (T); break;
+  case 0x77bfb61b: res = fetch_constructor_photo_size (T); break;
+  case 0xe9a734fa: res = fetch_constructor_photo_cached_size (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_photo_size (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_photo_size_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_photo_size_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_photo_size (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_photo_size (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_photo_cached_size (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_photo_cached_size (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_photo_size (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_photo_size); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "photoSizeEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_photo_size_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 9 && !memcmp (cur_token, "photoSize", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_photo_size (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "photoCachedSize", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_photo_cached_size (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_photo_size (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_photo_size); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "photoSizeEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_photo_size_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 9 && !memcmp (cur_token, "photoSize", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_photo_size (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "photoCachedSize", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_photo_cached_size (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_photo_size (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "photoSizeEmpty", text_len)) { *R = tstrdup ("photoSizeEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "photoSize", text_len)) { *R = tstrdup ("photoSize"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "photoCachedSize", text_len)) { *R = tstrdup ("photoCachedSize"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_privacy_key (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xbc2eab30: return skip_constructor_privacy_key_status_timestamp (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_privacy_key (struct paramed_type *T) {
+  if (skip_constructor_privacy_key_status_timestamp (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_privacy_key (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 25 && !memcmp (cur_token, "privacyKeyStatusTimestamp", cur_token_len)) {
+    out_int (0xbc2eab30);
+    local_next_token ();
+    if (store_constructor_privacy_key_status_timestamp (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_privacy_key (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 25 && !memcmp (cur_token, "privacyKeyStatusTimestamp", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_privacy_key_status_timestamp (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_privacy_key (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xbc2eab30: res = fetch_constructor_privacy_key_status_timestamp (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_privacy_key (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_privacy_key_status_timestamp (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_privacy_key (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_privacy_key); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 25 && !memcmp (cur_token, "privacyKeyStatusTimestamp", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_privacy_key_status_timestamp (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_privacy_key (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_privacy_key); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 25 && !memcmp (cur_token, "privacyKeyStatusTimestamp", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_privacy_key_status_timestamp (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_privacy_key (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "privacyKeyStatusTimestamp", text_len)) { *R = tstrdup ("privacyKeyStatusTimestamp"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_privacy_rule (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xfffe1bac: return skip_constructor_privacy_value_allow_contacts (T);
+  case 0x65427b82: return skip_constructor_privacy_value_allow_all (T);
+  case 0x4d5bbe0c: return skip_constructor_privacy_value_allow_users (T);
+  case 0xf888fa1a: return skip_constructor_privacy_value_disallow_contacts (T);
+  case 0x8b73e763: return skip_constructor_privacy_value_disallow_all (T);
+  case 0x0c7f49b7: return skip_constructor_privacy_value_disallow_users (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_privacy_rule (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_privacy_value_allow_contacts (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_privacy_value_allow_all (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_privacy_value_allow_users (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_privacy_value_disallow_contacts (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_privacy_value_disallow_all (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_privacy_value_disallow_users (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_privacy_rule (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 25 && !memcmp (cur_token, "privacyValueAllowContacts", cur_token_len)) {
+    out_int (0xfffe1bac);
+    local_next_token ();
+    if (store_constructor_privacy_value_allow_contacts (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "privacyValueAllowAll", cur_token_len)) {
+    out_int (0x65427b82);
+    local_next_token ();
+    if (store_constructor_privacy_value_allow_all (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "privacyValueAllowUsers", cur_token_len)) {
+    out_int (0x4d5bbe0c);
+    local_next_token ();
+    if (store_constructor_privacy_value_allow_users (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "privacyValueDisallowContacts", cur_token_len)) {
+    out_int (0xf888fa1a);
+    local_next_token ();
+    if (store_constructor_privacy_value_disallow_contacts (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "privacyValueDisallowAll", cur_token_len)) {
+    out_int (0x8b73e763);
+    local_next_token ();
+    if (store_constructor_privacy_value_disallow_all (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "privacyValueDisallowUsers", cur_token_len)) {
+    out_int (0x0c7f49b7);
+    local_next_token ();
+    if (store_constructor_privacy_value_disallow_users (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_privacy_rule (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 25 && !memcmp (cur_token, "privacyValueAllowContacts", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_privacy_value_allow_contacts (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "privacyValueAllowAll", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_privacy_value_allow_all (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "privacyValueAllowUsers", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_privacy_value_allow_users (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "privacyValueDisallowContacts", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_privacy_value_disallow_contacts (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "privacyValueDisallowAll", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_privacy_value_disallow_all (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "privacyValueDisallowUsers", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_privacy_value_disallow_users (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_privacy_rule (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xfffe1bac: res = fetch_constructor_privacy_value_allow_contacts (T); break;
+  case 0x65427b82: res = fetch_constructor_privacy_value_allow_all (T); break;
+  case 0x4d5bbe0c: res = fetch_constructor_privacy_value_allow_users (T); break;
+  case 0xf888fa1a: res = fetch_constructor_privacy_value_disallow_contacts (T); break;
+  case 0x8b73e763: res = fetch_constructor_privacy_value_disallow_all (T); break;
+  case 0x0c7f49b7: res = fetch_constructor_privacy_value_disallow_users (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_privacy_rule (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_privacy_value_allow_contacts (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_privacy_value_allow_contacts (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_privacy_value_allow_all (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_privacy_value_allow_all (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_privacy_value_allow_users (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_privacy_value_allow_users (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_privacy_value_disallow_contacts (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_privacy_value_disallow_contacts (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_privacy_value_disallow_all (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_privacy_value_disallow_all (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_privacy_value_disallow_users (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_privacy_value_disallow_users (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_privacy_rule (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_privacy_rule); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 25 && !memcmp (cur_token, "privacyValueAllowContacts", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_privacy_value_allow_contacts (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "privacyValueAllowAll", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_privacy_value_allow_all (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "privacyValueAllowUsers", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_privacy_value_allow_users (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "privacyValueDisallowContacts", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_privacy_value_disallow_contacts (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "privacyValueDisallowAll", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_privacy_value_disallow_all (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "privacyValueDisallowUsers", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_privacy_value_disallow_users (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_privacy_rule (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_privacy_rule); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 25 && !memcmp (cur_token, "privacyValueAllowContacts", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_privacy_value_allow_contacts (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "privacyValueAllowAll", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_privacy_value_allow_all (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "privacyValueAllowUsers", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_privacy_value_allow_users (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "privacyValueDisallowContacts", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_privacy_value_disallow_contacts (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "privacyValueDisallowAll", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_privacy_value_disallow_all (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "privacyValueDisallowUsers", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_privacy_value_disallow_users (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_privacy_rule (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "privacyValueAllowContacts", text_len)) { *R = tstrdup ("privacyValueAllowContacts"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "privacyValueAllowAll", text_len)) { *R = tstrdup ("privacyValueAllowAll"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "privacyValueAllowUsers", text_len)) { *R = tstrdup ("privacyValueAllowUsers"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "privacyValueDisallowContacts", text_len)) { *R = tstrdup ("privacyValueDisallowContacts"); return index; } else { index ++; }}
+  if (index == 4) { if (!strncmp (text, "privacyValueDisallowAll", text_len)) { *R = tstrdup ("privacyValueDisallowAll"); return index; } else { index ++; }}
+  if (index == 5) { if (!strncmp (text, "privacyValueDisallowUsers", text_len)) { *R = tstrdup ("privacyValueDisallowUsers"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_res_p_q (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x05162463: return skip_constructor_res_p_q (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_res_p_q (struct paramed_type *T) {
+  if (skip_constructor_res_p_q (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_res_p_q (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 5 && !memcmp (cur_token, "resPQ", cur_token_len)) {
+    out_int (0x05162463);
+    local_next_token ();
+    if (store_constructor_res_p_q (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_res_p_q (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 5 && !memcmp (cur_token, "resPQ", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_res_p_q (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_res_p_q (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x05162463: res = fetch_constructor_res_p_q (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_res_p_q (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_res_p_q (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_res_p_q (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_res_p_q); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 5 && !memcmp (cur_token, "resPQ", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_res_p_q (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_res_p_q (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_res_p_q); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 5 && !memcmp (cur_token, "resPQ", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_res_p_q (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_res_p_q (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "resPQ", text_len)) { *R = tstrdup ("resPQ"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_send_message_action (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x16bf744e: return skip_constructor_send_message_typing_action (T);
+  case 0xfd5ec8f5: return skip_constructor_send_message_cancel_action (T);
+  case 0xa187d66f: return skip_constructor_send_message_record_video_action (T);
+  case 0x92042ff7: return skip_constructor_send_message_upload_video_action (T);
+  case 0xd52f73f7: return skip_constructor_send_message_record_audio_action (T);
+  case 0xe6ac8a6f: return skip_constructor_send_message_upload_audio_action (T);
+  case 0x990a3c1a: return skip_constructor_send_message_upload_photo_action (T);
+  case 0x8faee98e: return skip_constructor_send_message_upload_document_action (T);
+  case 0x176f8ba1: return skip_constructor_send_message_geo_location_action (T);
+  case 0x628cbc6f: return skip_constructor_send_message_choose_contact_action (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_send_message_action (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_send_message_typing_action (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_send_message_cancel_action (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_send_message_record_video_action (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_send_message_upload_video_action (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_send_message_record_audio_action (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_send_message_upload_audio_action (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_send_message_upload_photo_action (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_send_message_upload_document_action (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_send_message_geo_location_action (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_send_message_choose_contact_action (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_send_message_action (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "sendMessageTypingAction", cur_token_len)) {
+    out_int (0x16bf744e);
+    local_next_token ();
+    if (store_constructor_send_message_typing_action (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "sendMessageCancelAction", cur_token_len)) {
+    out_int (0xfd5ec8f5);
+    local_next_token ();
+    if (store_constructor_send_message_cancel_action (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageRecordVideoAction", cur_token_len)) {
+    out_int (0xa187d66f);
+    local_next_token ();
+    if (store_constructor_send_message_record_video_action (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageUploadVideoAction", cur_token_len)) {
+    out_int (0x92042ff7);
+    local_next_token ();
+    if (store_constructor_send_message_upload_video_action (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageRecordAudioAction", cur_token_len)) {
+    out_int (0xd52f73f7);
+    local_next_token ();
+    if (store_constructor_send_message_record_audio_action (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageUploadAudioAction", cur_token_len)) {
+    out_int (0xe6ac8a6f);
+    local_next_token ();
+    if (store_constructor_send_message_upload_audio_action (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageUploadPhotoAction", cur_token_len)) {
+    out_int (0x990a3c1a);
+    local_next_token ();
+    if (store_constructor_send_message_upload_photo_action (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 31 && !memcmp (cur_token, "sendMessageUploadDocumentAction", cur_token_len)) {
+    out_int (0x8faee98e);
+    local_next_token ();
+    if (store_constructor_send_message_upload_document_action (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageGeoLocationAction", cur_token_len)) {
+    out_int (0x176f8ba1);
+    local_next_token ();
+    if (store_constructor_send_message_geo_location_action (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 30 && !memcmp (cur_token, "sendMessageChooseContactAction", cur_token_len)) {
+    out_int (0x628cbc6f);
+    local_next_token ();
+    if (store_constructor_send_message_choose_contact_action (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_send_message_action (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "sendMessageTypingAction", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_send_message_typing_action (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "sendMessageCancelAction", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_send_message_cancel_action (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageRecordVideoAction", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_send_message_record_video_action (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageUploadVideoAction", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_send_message_upload_video_action (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageRecordAudioAction", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_send_message_record_audio_action (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageUploadAudioAction", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_send_message_upload_audio_action (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageUploadPhotoAction", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_send_message_upload_photo_action (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 31 && !memcmp (cur_token, "sendMessageUploadDocumentAction", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_send_message_upload_document_action (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageGeoLocationAction", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_send_message_geo_location_action (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 30 && !memcmp (cur_token, "sendMessageChooseContactAction", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_send_message_choose_contact_action (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_send_message_action (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x16bf744e: res = fetch_constructor_send_message_typing_action (T); break;
+  case 0xfd5ec8f5: res = fetch_constructor_send_message_cancel_action (T); break;
+  case 0xa187d66f: res = fetch_constructor_send_message_record_video_action (T); break;
+  case 0x92042ff7: res = fetch_constructor_send_message_upload_video_action (T); break;
+  case 0xd52f73f7: res = fetch_constructor_send_message_record_audio_action (T); break;
+  case 0xe6ac8a6f: res = fetch_constructor_send_message_upload_audio_action (T); break;
+  case 0x990a3c1a: res = fetch_constructor_send_message_upload_photo_action (T); break;
+  case 0x8faee98e: res = fetch_constructor_send_message_upload_document_action (T); break;
+  case 0x176f8ba1: res = fetch_constructor_send_message_geo_location_action (T); break;
+  case 0x628cbc6f: res = fetch_constructor_send_message_choose_contact_action (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_send_message_action (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_send_message_typing_action (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_send_message_typing_action (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_send_message_cancel_action (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_send_message_cancel_action (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_send_message_record_video_action (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_send_message_record_video_action (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_send_message_upload_video_action (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_send_message_upload_video_action (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_send_message_record_audio_action (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_send_message_record_audio_action (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_send_message_upload_audio_action (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_send_message_upload_audio_action (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_send_message_upload_photo_action (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_send_message_upload_photo_action (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_send_message_upload_document_action (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_send_message_upload_document_action (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_send_message_geo_location_action (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_send_message_geo_location_action (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_send_message_choose_contact_action (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_send_message_choose_contact_action (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_send_message_action (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_send_message_action); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "sendMessageTypingAction", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_send_message_typing_action (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "sendMessageCancelAction", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_send_message_cancel_action (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageRecordVideoAction", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_send_message_record_video_action (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageUploadVideoAction", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_send_message_upload_video_action (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageRecordAudioAction", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_send_message_record_audio_action (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageUploadAudioAction", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_send_message_upload_audio_action (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageUploadPhotoAction", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_send_message_upload_photo_action (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 31 && !memcmp (cur_token, "sendMessageUploadDocumentAction", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_send_message_upload_document_action (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageGeoLocationAction", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_send_message_geo_location_action (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 30 && !memcmp (cur_token, "sendMessageChooseContactAction", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_send_message_choose_contact_action (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_send_message_action (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_send_message_action); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "sendMessageTypingAction", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_send_message_typing_action (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "sendMessageCancelAction", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_send_message_cancel_action (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageRecordVideoAction", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_send_message_record_video_action (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageUploadVideoAction", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_send_message_upload_video_action (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageRecordAudioAction", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_send_message_record_audio_action (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageUploadAudioAction", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_send_message_upload_audio_action (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageUploadPhotoAction", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_send_message_upload_photo_action (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 31 && !memcmp (cur_token, "sendMessageUploadDocumentAction", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_send_message_upload_document_action (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "sendMessageGeoLocationAction", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_send_message_geo_location_action (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 30 && !memcmp (cur_token, "sendMessageChooseContactAction", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_send_message_choose_contact_action (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_send_message_action (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "sendMessageTypingAction", text_len)) { *R = tstrdup ("sendMessageTypingAction"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "sendMessageCancelAction", text_len)) { *R = tstrdup ("sendMessageCancelAction"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "sendMessageRecordVideoAction", text_len)) { *R = tstrdup ("sendMessageRecordVideoAction"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "sendMessageUploadVideoAction", text_len)) { *R = tstrdup ("sendMessageUploadVideoAction"); return index; } else { index ++; }}
+  if (index == 4) { if (!strncmp (text, "sendMessageRecordAudioAction", text_len)) { *R = tstrdup ("sendMessageRecordAudioAction"); return index; } else { index ++; }}
+  if (index == 5) { if (!strncmp (text, "sendMessageUploadAudioAction", text_len)) { *R = tstrdup ("sendMessageUploadAudioAction"); return index; } else { index ++; }}
+  if (index == 6) { if (!strncmp (text, "sendMessageUploadPhotoAction", text_len)) { *R = tstrdup ("sendMessageUploadPhotoAction"); return index; } else { index ++; }}
+  if (index == 7) { if (!strncmp (text, "sendMessageUploadDocumentAction", text_len)) { *R = tstrdup ("sendMessageUploadDocumentAction"); return index; } else { index ++; }}
+  if (index == 8) { if (!strncmp (text, "sendMessageGeoLocationAction", text_len)) { *R = tstrdup ("sendMessageGeoLocationAction"); return index; } else { index ++; }}
+  if (index == 9) { if (!strncmp (text, "sendMessageChooseContactAction", text_len)) { *R = tstrdup ("sendMessageChooseContactAction"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_server_d_h_params (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x79cb045d: return skip_constructor_server_d_h_params_fail (T);
+  case 0xd0e8075c: return skip_constructor_server_d_h_params_ok (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_server_d_h_params (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_server_d_h_params_fail (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_server_d_h_params_ok (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_server_d_h_params (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 21 && !memcmp (cur_token, "server_DH_params_fail", cur_token_len)) {
+    out_int (0x79cb045d);
+    local_next_token ();
+    if (store_constructor_server_d_h_params_fail (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "server_DH_params_ok", cur_token_len)) {
+    out_int (0xd0e8075c);
+    local_next_token ();
+    if (store_constructor_server_d_h_params_ok (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_server_d_h_params (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 21 && !memcmp (cur_token, "server_DH_params_fail", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_server_d_h_params_fail (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "server_DH_params_ok", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_server_d_h_params_ok (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_server_d_h_params (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x79cb045d: res = fetch_constructor_server_d_h_params_fail (T); break;
+  case 0xd0e8075c: res = fetch_constructor_server_d_h_params_ok (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_server_d_h_params (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_server_d_h_params_fail (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_server_d_h_params_fail (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_server_d_h_params_ok (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_server_d_h_params_ok (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_server_d_h_params (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_server_d_h_params); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 21 && !memcmp (cur_token, "server_DH_params_fail", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_server_d_h_params_fail (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "server_DH_params_ok", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_server_d_h_params_ok (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_server_d_h_params (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_server_d_h_params); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 21 && !memcmp (cur_token, "server_DH_params_fail", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_server_d_h_params_fail (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "server_DH_params_ok", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_server_d_h_params_ok (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_server_d_h_params (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "server_DH_params_fail", text_len)) { *R = tstrdup ("server_DH_params_fail"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "server_DH_params_ok", text_len)) { *R = tstrdup ("server_DH_params_ok"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_server_d_h_inner_data (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xb5890dba: return skip_constructor_server_d_h_inner_data (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_server_d_h_inner_data (struct paramed_type *T) {
+  if (skip_constructor_server_d_h_inner_data (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_server_d_h_inner_data (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 20 && !memcmp (cur_token, "server_DH_inner_data", cur_token_len)) {
+    out_int (0xb5890dba);
+    local_next_token ();
+    if (store_constructor_server_d_h_inner_data (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_server_d_h_inner_data (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 20 && !memcmp (cur_token, "server_DH_inner_data", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_server_d_h_inner_data (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_server_d_h_inner_data (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xb5890dba: res = fetch_constructor_server_d_h_inner_data (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_server_d_h_inner_data (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_server_d_h_inner_data (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_server_d_h_inner_data (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_server_d_h_inner_data); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 20 && !memcmp (cur_token, "server_DH_inner_data", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_server_d_h_inner_data (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_server_d_h_inner_data (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_server_d_h_inner_data); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 20 && !memcmp (cur_token, "server_DH_inner_data", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_server_d_h_inner_data (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_server_d_h_inner_data (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "server_DH_inner_data", text_len)) { *R = tstrdup ("server_DH_inner_data"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_set_client_d_h_params_answer (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x3bcbf734: return skip_constructor_dh_gen_ok (T);
+  case 0x46dc1fb9: return skip_constructor_dh_gen_retry (T);
+  case 0xa69dae02: return skip_constructor_dh_gen_fail (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_set_client_d_h_params_answer (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_dh_gen_ok (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_dh_gen_retry (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_dh_gen_fail (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_set_client_d_h_params_answer (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "dh_gen_ok", cur_token_len)) {
+    out_int (0x3bcbf734);
+    local_next_token ();
+    if (store_constructor_dh_gen_ok (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 12 && !memcmp (cur_token, "dh_gen_retry", cur_token_len)) {
+    out_int (0x46dc1fb9);
+    local_next_token ();
+    if (store_constructor_dh_gen_retry (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "dh_gen_fail", cur_token_len)) {
+    out_int (0xa69dae02);
+    local_next_token ();
+    if (store_constructor_dh_gen_fail (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_set_client_d_h_params_answer (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "dh_gen_ok", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_dh_gen_ok (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 12 && !memcmp (cur_token, "dh_gen_retry", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_dh_gen_retry (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "dh_gen_fail", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_dh_gen_fail (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_set_client_d_h_params_answer (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x3bcbf734: res = fetch_constructor_dh_gen_ok (T); break;
+  case 0x46dc1fb9: res = fetch_constructor_dh_gen_retry (T); break;
+  case 0xa69dae02: res = fetch_constructor_dh_gen_fail (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_set_client_d_h_params_answer (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_dh_gen_ok (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_dh_gen_ok (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_dh_gen_retry (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_dh_gen_retry (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_dh_gen_fail (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_dh_gen_fail (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_set_client_d_h_params_answer (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_set_client_d_h_params_answer); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "dh_gen_ok", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_dh_gen_ok (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 12 && !memcmp (cur_token, "dh_gen_retry", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_dh_gen_retry (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "dh_gen_fail", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_dh_gen_fail (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_set_client_d_h_params_answer (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_set_client_d_h_params_answer); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "dh_gen_ok", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_dh_gen_ok (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 12 && !memcmp (cur_token, "dh_gen_retry", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_dh_gen_retry (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "dh_gen_fail", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_dh_gen_fail (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_set_client_d_h_params_answer (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "dh_gen_ok", text_len)) { *R = tstrdup ("dh_gen_ok"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "dh_gen_retry", text_len)) { *R = tstrdup ("dh_gen_retry"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "dh_gen_fail", text_len)) { *R = tstrdup ("dh_gen_fail"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_sticker_pack (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x12b299d4: return skip_constructor_sticker_pack (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_sticker_pack (struct paramed_type *T) {
+  if (skip_constructor_sticker_pack (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_sticker_pack (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 11 && !memcmp (cur_token, "stickerPack", cur_token_len)) {
+    out_int (0x12b299d4);
+    local_next_token ();
+    if (store_constructor_sticker_pack (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_sticker_pack (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 11 && !memcmp (cur_token, "stickerPack", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_sticker_pack (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_sticker_pack (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x12b299d4: res = fetch_constructor_sticker_pack (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_sticker_pack (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_sticker_pack (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_sticker_pack (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_sticker_pack); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 11 && !memcmp (cur_token, "stickerPack", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_sticker_pack (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_sticker_pack (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_sticker_pack); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 11 && !memcmp (cur_token, "stickerPack", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_sticker_pack (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_sticker_pack (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "stickerPack", text_len)) { *R = tstrdup ("stickerPack"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_string (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xb5286e24: return skip_constructor_string (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_string (struct paramed_type *T) {
+  if (skip_constructor_string (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_string (struct paramed_type *T) {
+    out_int (0xb5286e24);
+  if (store_constructor_string (T) < 0) { return -1; }
+  return 0;
+}
+int store_type_bare_string (struct paramed_type *T) {
+  if (store_constructor_string (T) < 0) { return -1; }
+  return 0;
+}
+int fetch_type_string (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xb5286e24: res = fetch_constructor_string (T); break;
+  default: return -1;
+  }
+  return res;
+}
+int fetch_type_bare_string (struct paramed_type *T) {
+  if (fetch_constructor_string (T) >= 0) { return 0; }
+  return -1;
+}
+int autocomplete_type_string (struct paramed_type *T) {
+  if (autocomplete_constructor_string (T) < 0) { return -1; }
+  return 0;
+}
+int autocomplete_type_bare_string (struct paramed_type *T) {
+  if (autocomplete_constructor_string (T) < 0) { return -1; }
+  return 0;
+}
+int do_autocomplete_type_string (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "string", text_len)) { *R = tstrdup ("string"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_update (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x013abdb3: return skip_constructor_update_new_message (T);
+  case 0x4e90bfd6: return skip_constructor_update_message_i_d (T);
+  case 0xc6649e31: return skip_constructor_update_read_messages (T);
+  case 0xa92bfe26: return skip_constructor_update_delete_messages (T);
+  case 0xd15de04d: return skip_constructor_update_restore_messages (T);
+  case 0x5c486927: return skip_constructor_update_user_typing (T);
+  case 0x9a65ea1f: return skip_constructor_update_chat_user_typing (T);
+  case 0x07761198: return skip_constructor_update_chat_participants (T);
+  case 0x1bfbd823: return skip_constructor_update_user_status (T);
+  case 0xa7332b73: return skip_constructor_update_user_name (T);
+  case 0x95313b0c: return skip_constructor_update_user_photo (T);
+  case 0x2575bbb9: return skip_constructor_update_contact_registered (T);
+  case 0x51a48a9a: return skip_constructor_update_contact_link (T);
+  case 0x6f690963: return skip_constructor_update_activation (T);
+  case 0x8f06529a: return skip_constructor_update_new_authorization (T);
+  case 0x5a68e3f7: return skip_constructor_update_new_geo_chat_message (T);
+  case 0x12bcbd9a: return skip_constructor_update_new_encrypted_message (T);
+  case 0x1710f156: return skip_constructor_update_encrypted_chat_typing (T);
+  case 0xb4a2e88d: return skip_constructor_update_encryption (T);
+  case 0x38fe25b7: return skip_constructor_update_encrypted_messages_read (T);
+  case 0x3a0eeb22: return skip_constructor_update_chat_participant_add (T);
+  case 0x6e5f8c22: return skip_constructor_update_chat_participant_delete (T);
+  case 0x8e5e9873: return skip_constructor_update_dc_options (T);
+  case 0x80ece81a: return skip_constructor_update_user_blocked (T);
+  case 0xbec268ef: return skip_constructor_update_notify_settings (T);
+  case 0x382dd3e4: return skip_constructor_update_service_notification (T);
+  case 0xee3b272a: return skip_constructor_update_privacy (T);
+  case 0x12b9417b: return skip_constructor_update_user_phone (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_update (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_update_new_message (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_message_i_d (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_read_messages (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_delete_messages (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_restore_messages (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_user_typing (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_chat_user_typing (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_chat_participants (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_user_status (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_user_name (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_user_photo (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_contact_registered (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_contact_link (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_activation (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_new_authorization (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_new_geo_chat_message (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_new_encrypted_message (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_encrypted_chat_typing (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_encryption (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_encrypted_messages_read (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_chat_participant_add (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_chat_participant_delete (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_dc_options (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_user_blocked (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_notify_settings (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_service_notification (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_privacy (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_user_phone (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_update (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 16 && !memcmp (cur_token, "updateNewMessage", cur_token_len)) {
+    out_int (0x013abdb3);
+    local_next_token ();
+    if (store_constructor_update_new_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "updateMessageID", cur_token_len)) {
+    out_int (0x4e90bfd6);
+    local_next_token ();
+    if (store_constructor_update_message_i_d (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "updateReadMessages", cur_token_len)) {
+    out_int (0xc6649e31);
+    local_next_token ();
+    if (store_constructor_update_read_messages (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "updateDeleteMessages", cur_token_len)) {
+    out_int (0xa92bfe26);
+    local_next_token ();
+    if (store_constructor_update_delete_messages (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "updateRestoreMessages", cur_token_len)) {
+    out_int (0xd15de04d);
+    local_next_token ();
+    if (store_constructor_update_restore_messages (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "updateUserTyping", cur_token_len)) {
+    out_int (0x5c486927);
+    local_next_token ();
+    if (store_constructor_update_user_typing (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "updateChatUserTyping", cur_token_len)) {
+    out_int (0x9a65ea1f);
+    local_next_token ();
+    if (store_constructor_update_chat_user_typing (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "updateChatParticipants", cur_token_len)) {
+    out_int (0x07761198);
+    local_next_token ();
+    if (store_constructor_update_chat_participants (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "updateUserStatus", cur_token_len)) {
+    out_int (0x1bfbd823);
+    local_next_token ();
+    if (store_constructor_update_user_status (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "updateUserName", cur_token_len)) {
+    out_int (0xa7332b73);
+    local_next_token ();
+    if (store_constructor_update_user_name (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "updateUserPhoto", cur_token_len)) {
+    out_int (0x95313b0c);
+    local_next_token ();
+    if (store_constructor_update_user_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "updateContactRegistered", cur_token_len)) {
+    out_int (0x2575bbb9);
+    local_next_token ();
+    if (store_constructor_update_contact_registered (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "updateContactLink", cur_token_len)) {
+    out_int (0x51a48a9a);
+    local_next_token ();
+    if (store_constructor_update_contact_link (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "updateActivation", cur_token_len)) {
+    out_int (0x6f690963);
+    local_next_token ();
+    if (store_constructor_update_activation (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "updateNewAuthorization", cur_token_len)) {
+    out_int (0x8f06529a);
+    local_next_token ();
+    if (store_constructor_update_new_authorization (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "updateNewGeoChatMessage", cur_token_len)) {
+    out_int (0x5a68e3f7);
+    local_next_token ();
+    if (store_constructor_update_new_geo_chat_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "updateNewEncryptedMessage", cur_token_len)) {
+    out_int (0x12bcbd9a);
+    local_next_token ();
+    if (store_constructor_update_new_encrypted_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "updateEncryptedChatTyping", cur_token_len)) {
+    out_int (0x1710f156);
+    local_next_token ();
+    if (store_constructor_update_encrypted_chat_typing (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "updateEncryption", cur_token_len)) {
+    out_int (0xb4a2e88d);
+    local_next_token ();
+    if (store_constructor_update_encryption (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "updateEncryptedMessagesRead", cur_token_len)) {
+    out_int (0x38fe25b7);
+    local_next_token ();
+    if (store_constructor_update_encrypted_messages_read (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "updateChatParticipantAdd", cur_token_len)) {
+    out_int (0x3a0eeb22);
+    local_next_token ();
+    if (store_constructor_update_chat_participant_add (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "updateChatParticipantDelete", cur_token_len)) {
+    out_int (0x6e5f8c22);
+    local_next_token ();
+    if (store_constructor_update_chat_participant_delete (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "updateDcOptions", cur_token_len)) {
+    out_int (0x8e5e9873);
+    local_next_token ();
+    if (store_constructor_update_dc_options (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "updateUserBlocked", cur_token_len)) {
+    out_int (0x80ece81a);
+    local_next_token ();
+    if (store_constructor_update_user_blocked (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "updateNotifySettings", cur_token_len)) {
+    out_int (0xbec268ef);
+    local_next_token ();
+    if (store_constructor_update_notify_settings (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "updateServiceNotification", cur_token_len)) {
+    out_int (0x382dd3e4);
+    local_next_token ();
+    if (store_constructor_update_service_notification (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "updatePrivacy", cur_token_len)) {
+    out_int (0xee3b272a);
+    local_next_token ();
+    if (store_constructor_update_privacy (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "updateUserPhone", cur_token_len)) {
+    out_int (0x12b9417b);
+    local_next_token ();
+    if (store_constructor_update_user_phone (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_update (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 16 && !memcmp (cur_token, "updateNewMessage", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_new_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "updateMessageID", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_message_i_d (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "updateReadMessages", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_read_messages (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "updateDeleteMessages", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_delete_messages (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "updateRestoreMessages", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_restore_messages (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "updateUserTyping", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_user_typing (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "updateChatUserTyping", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_chat_user_typing (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "updateChatParticipants", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_chat_participants (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "updateUserStatus", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_user_status (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "updateUserName", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_user_name (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "updateUserPhoto", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_user_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "updateContactRegistered", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_contact_registered (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "updateContactLink", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_contact_link (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "updateActivation", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_activation (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "updateNewAuthorization", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_new_authorization (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "updateNewGeoChatMessage", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_new_geo_chat_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "updateNewEncryptedMessage", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_new_encrypted_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "updateEncryptedChatTyping", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_encrypted_chat_typing (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "updateEncryption", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_encryption (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "updateEncryptedMessagesRead", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_encrypted_messages_read (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "updateChatParticipantAdd", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_chat_participant_add (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "updateChatParticipantDelete", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_chat_participant_delete (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "updateDcOptions", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_dc_options (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "updateUserBlocked", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_user_blocked (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "updateNotifySettings", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_notify_settings (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "updateServiceNotification", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_service_notification (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "updatePrivacy", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_privacy (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "updateUserPhone", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_user_phone (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_update (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x013abdb3: res = fetch_constructor_update_new_message (T); break;
+  case 0x4e90bfd6: res = fetch_constructor_update_message_i_d (T); break;
+  case 0xc6649e31: res = fetch_constructor_update_read_messages (T); break;
+  case 0xa92bfe26: res = fetch_constructor_update_delete_messages (T); break;
+  case 0xd15de04d: res = fetch_constructor_update_restore_messages (T); break;
+  case 0x5c486927: res = fetch_constructor_update_user_typing (T); break;
+  case 0x9a65ea1f: res = fetch_constructor_update_chat_user_typing (T); break;
+  case 0x07761198: res = fetch_constructor_update_chat_participants (T); break;
+  case 0x1bfbd823: res = fetch_constructor_update_user_status (T); break;
+  case 0xa7332b73: res = fetch_constructor_update_user_name (T); break;
+  case 0x95313b0c: res = fetch_constructor_update_user_photo (T); break;
+  case 0x2575bbb9: res = fetch_constructor_update_contact_registered (T); break;
+  case 0x51a48a9a: res = fetch_constructor_update_contact_link (T); break;
+  case 0x6f690963: res = fetch_constructor_update_activation (T); break;
+  case 0x8f06529a: res = fetch_constructor_update_new_authorization (T); break;
+  case 0x5a68e3f7: res = fetch_constructor_update_new_geo_chat_message (T); break;
+  case 0x12bcbd9a: res = fetch_constructor_update_new_encrypted_message (T); break;
+  case 0x1710f156: res = fetch_constructor_update_encrypted_chat_typing (T); break;
+  case 0xb4a2e88d: res = fetch_constructor_update_encryption (T); break;
+  case 0x38fe25b7: res = fetch_constructor_update_encrypted_messages_read (T); break;
+  case 0x3a0eeb22: res = fetch_constructor_update_chat_participant_add (T); break;
+  case 0x6e5f8c22: res = fetch_constructor_update_chat_participant_delete (T); break;
+  case 0x8e5e9873: res = fetch_constructor_update_dc_options (T); break;
+  case 0x80ece81a: res = fetch_constructor_update_user_blocked (T); break;
+  case 0xbec268ef: res = fetch_constructor_update_notify_settings (T); break;
+  case 0x382dd3e4: res = fetch_constructor_update_service_notification (T); break;
+  case 0xee3b272a: res = fetch_constructor_update_privacy (T); break;
+  case 0x12b9417b: res = fetch_constructor_update_user_phone (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_update (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_update_new_message (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_new_message (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_message_i_d (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_message_i_d (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_read_messages (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_read_messages (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_delete_messages (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_delete_messages (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_restore_messages (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_restore_messages (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_user_typing (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_user_typing (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_chat_user_typing (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_chat_user_typing (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_chat_participants (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_chat_participants (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_user_status (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_user_status (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_user_name (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_user_name (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_user_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_user_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_contact_registered (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_contact_registered (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_contact_link (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_contact_link (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_activation (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_activation (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_new_authorization (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_new_authorization (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_new_geo_chat_message (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_new_geo_chat_message (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_new_encrypted_message (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_new_encrypted_message (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_encrypted_chat_typing (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_encrypted_chat_typing (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_encryption (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_encryption (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_encrypted_messages_read (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_encrypted_messages_read (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_chat_participant_add (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_chat_participant_add (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_chat_participant_delete (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_chat_participant_delete (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_dc_options (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_dc_options (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_user_blocked (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_user_blocked (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_notify_settings (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_notify_settings (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_service_notification (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_service_notification (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_privacy (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_privacy (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_user_phone (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_user_phone (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_update (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_update); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 16 && !memcmp (cur_token, "updateNewMessage", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_new_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "updateMessageID", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_message_i_d (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "updateReadMessages", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_read_messages (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "updateDeleteMessages", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_delete_messages (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "updateRestoreMessages", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_restore_messages (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "updateUserTyping", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_user_typing (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "updateChatUserTyping", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_chat_user_typing (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "updateChatParticipants", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_chat_participants (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "updateUserStatus", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_user_status (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "updateUserName", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_user_name (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "updateUserPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_user_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "updateContactRegistered", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_contact_registered (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "updateContactLink", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_contact_link (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "updateActivation", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_activation (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "updateNewAuthorization", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_new_authorization (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "updateNewGeoChatMessage", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_new_geo_chat_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "updateNewEncryptedMessage", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_new_encrypted_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "updateEncryptedChatTyping", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_encrypted_chat_typing (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "updateEncryption", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_encryption (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "updateEncryptedMessagesRead", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_encrypted_messages_read (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "updateChatParticipantAdd", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_chat_participant_add (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "updateChatParticipantDelete", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_chat_participant_delete (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "updateDcOptions", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_dc_options (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "updateUserBlocked", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_user_blocked (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "updateNotifySettings", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_notify_settings (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "updateServiceNotification", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_service_notification (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "updatePrivacy", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_privacy (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "updateUserPhone", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_user_phone (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_update (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_update); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 16 && !memcmp (cur_token, "updateNewMessage", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_new_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "updateMessageID", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_message_i_d (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "updateReadMessages", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_read_messages (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "updateDeleteMessages", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_delete_messages (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "updateRestoreMessages", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_restore_messages (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "updateUserTyping", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_user_typing (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "updateChatUserTyping", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_chat_user_typing (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "updateChatParticipants", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_chat_participants (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "updateUserStatus", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_user_status (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "updateUserName", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_user_name (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "updateUserPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_user_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "updateContactRegistered", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_contact_registered (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "updateContactLink", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_contact_link (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "updateActivation", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_activation (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "updateNewAuthorization", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_new_authorization (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "updateNewGeoChatMessage", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_new_geo_chat_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "updateNewEncryptedMessage", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_new_encrypted_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "updateEncryptedChatTyping", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_encrypted_chat_typing (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "updateEncryption", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_encryption (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "updateEncryptedMessagesRead", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_encrypted_messages_read (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "updateChatParticipantAdd", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_chat_participant_add (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "updateChatParticipantDelete", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_chat_participant_delete (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "updateDcOptions", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_dc_options (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "updateUserBlocked", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_user_blocked (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "updateNotifySettings", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_notify_settings (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "updateServiceNotification", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_service_notification (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "updatePrivacy", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_privacy (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "updateUserPhone", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_user_phone (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_update (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "updateNewMessage", text_len)) { *R = tstrdup ("updateNewMessage"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "updateMessageID", text_len)) { *R = tstrdup ("updateMessageID"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "updateReadMessages", text_len)) { *R = tstrdup ("updateReadMessages"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "updateDeleteMessages", text_len)) { *R = tstrdup ("updateDeleteMessages"); return index; } else { index ++; }}
+  if (index == 4) { if (!strncmp (text, "updateRestoreMessages", text_len)) { *R = tstrdup ("updateRestoreMessages"); return index; } else { index ++; }}
+  if (index == 5) { if (!strncmp (text, "updateUserTyping", text_len)) { *R = tstrdup ("updateUserTyping"); return index; } else { index ++; }}
+  if (index == 6) { if (!strncmp (text, "updateChatUserTyping", text_len)) { *R = tstrdup ("updateChatUserTyping"); return index; } else { index ++; }}
+  if (index == 7) { if (!strncmp (text, "updateChatParticipants", text_len)) { *R = tstrdup ("updateChatParticipants"); return index; } else { index ++; }}
+  if (index == 8) { if (!strncmp (text, "updateUserStatus", text_len)) { *R = tstrdup ("updateUserStatus"); return index; } else { index ++; }}
+  if (index == 9) { if (!strncmp (text, "updateUserName", text_len)) { *R = tstrdup ("updateUserName"); return index; } else { index ++; }}
+  if (index == 10) { if (!strncmp (text, "updateUserPhoto", text_len)) { *R = tstrdup ("updateUserPhoto"); return index; } else { index ++; }}
+  if (index == 11) { if (!strncmp (text, "updateContactRegistered", text_len)) { *R = tstrdup ("updateContactRegistered"); return index; } else { index ++; }}
+  if (index == 12) { if (!strncmp (text, "updateContactLink", text_len)) { *R = tstrdup ("updateContactLink"); return index; } else { index ++; }}
+  if (index == 13) { if (!strncmp (text, "updateActivation", text_len)) { *R = tstrdup ("updateActivation"); return index; } else { index ++; }}
+  if (index == 14) { if (!strncmp (text, "updateNewAuthorization", text_len)) { *R = tstrdup ("updateNewAuthorization"); return index; } else { index ++; }}
+  if (index == 15) { if (!strncmp (text, "updateNewGeoChatMessage", text_len)) { *R = tstrdup ("updateNewGeoChatMessage"); return index; } else { index ++; }}
+  if (index == 16) { if (!strncmp (text, "updateNewEncryptedMessage", text_len)) { *R = tstrdup ("updateNewEncryptedMessage"); return index; } else { index ++; }}
+  if (index == 17) { if (!strncmp (text, "updateEncryptedChatTyping", text_len)) { *R = tstrdup ("updateEncryptedChatTyping"); return index; } else { index ++; }}
+  if (index == 18) { if (!strncmp (text, "updateEncryption", text_len)) { *R = tstrdup ("updateEncryption"); return index; } else { index ++; }}
+  if (index == 19) { if (!strncmp (text, "updateEncryptedMessagesRead", text_len)) { *R = tstrdup ("updateEncryptedMessagesRead"); return index; } else { index ++; }}
+  if (index == 20) { if (!strncmp (text, "updateChatParticipantAdd", text_len)) { *R = tstrdup ("updateChatParticipantAdd"); return index; } else { index ++; }}
+  if (index == 21) { if (!strncmp (text, "updateChatParticipantDelete", text_len)) { *R = tstrdup ("updateChatParticipantDelete"); return index; } else { index ++; }}
+  if (index == 22) { if (!strncmp (text, "updateDcOptions", text_len)) { *R = tstrdup ("updateDcOptions"); return index; } else { index ++; }}
+  if (index == 23) { if (!strncmp (text, "updateUserBlocked", text_len)) { *R = tstrdup ("updateUserBlocked"); return index; } else { index ++; }}
+  if (index == 24) { if (!strncmp (text, "updateNotifySettings", text_len)) { *R = tstrdup ("updateNotifySettings"); return index; } else { index ++; }}
+  if (index == 25) { if (!strncmp (text, "updateServiceNotification", text_len)) { *R = tstrdup ("updateServiceNotification"); return index; } else { index ++; }}
+  if (index == 26) { if (!strncmp (text, "updatePrivacy", text_len)) { *R = tstrdup ("updatePrivacy"); return index; } else { index ++; }}
+  if (index == 27) { if (!strncmp (text, "updateUserPhone", text_len)) { *R = tstrdup ("updateUserPhone"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_updates (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xe317af7e: return skip_constructor_updates_too_long (T);
+  case 0xd3f45784: return skip_constructor_update_short_message (T);
+  case 0x2b2fbd4e: return skip_constructor_update_short_chat_message (T);
+  case 0x78d4dec1: return skip_constructor_update_short (T);
+  case 0x725b04c3: return skip_constructor_updates_combined (T);
+  case 0x74ae4240: return skip_constructor_updates (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_updates (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_updates_too_long (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_short_message (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_short_chat_message (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_short (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_updates_combined (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_updates (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_updates (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "updatesTooLong", cur_token_len)) {
+    out_int (0xe317af7e);
+    local_next_token ();
+    if (store_constructor_updates_too_long (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "updateShortMessage", cur_token_len)) {
+    out_int (0xd3f45784);
+    local_next_token ();
+    if (store_constructor_update_short_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "updateShortChatMessage", cur_token_len)) {
+    out_int (0x2b2fbd4e);
+    local_next_token ();
+    if (store_constructor_update_short_chat_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "updateShort", cur_token_len)) {
+    out_int (0x78d4dec1);
+    local_next_token ();
+    if (store_constructor_update_short (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "updatesCombined", cur_token_len)) {
+    out_int (0x725b04c3);
+    local_next_token ();
+    if (store_constructor_updates_combined (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 7 && !memcmp (cur_token, "updates", cur_token_len)) {
+    out_int (0x74ae4240);
+    local_next_token ();
+    if (store_constructor_updates (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_updates (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "updatesTooLong", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_updates_too_long (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "updateShortMessage", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_short_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "updateShortChatMessage", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_short_chat_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "updateShort", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_update_short (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "updatesCombined", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_updates_combined (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 7 && !memcmp (cur_token, "updates", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_updates (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_updates (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xe317af7e: res = fetch_constructor_updates_too_long (T); break;
+  case 0xd3f45784: res = fetch_constructor_update_short_message (T); break;
+  case 0x2b2fbd4e: res = fetch_constructor_update_short_chat_message (T); break;
+  case 0x78d4dec1: res = fetch_constructor_update_short (T); break;
+  case 0x725b04c3: res = fetch_constructor_updates_combined (T); break;
+  case 0x74ae4240: res = fetch_constructor_updates (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_updates (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_updates_too_long (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_updates_too_long (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_short_message (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_short_message (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_short_chat_message (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_short_chat_message (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_update_short (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_update_short (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_updates_combined (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_updates_combined (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_updates (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_updates (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_updates (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_updates); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "updatesTooLong", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_updates_too_long (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "updateShortMessage", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_short_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "updateShortChatMessage", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_short_chat_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "updateShort", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_short (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "updatesCombined", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_updates_combined (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 7 && !memcmp (cur_token, "updates", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_updates (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_updates (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_updates); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "updatesTooLong", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_updates_too_long (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "updateShortMessage", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_short_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "updateShortChatMessage", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_short_chat_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "updateShort", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_update_short (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "updatesCombined", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_updates_combined (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 7 && !memcmp (cur_token, "updates", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_updates (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_updates (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "updatesTooLong", text_len)) { *R = tstrdup ("updatesTooLong"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "updateShortMessage", text_len)) { *R = tstrdup ("updateShortMessage"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "updateShortChatMessage", text_len)) { *R = tstrdup ("updateShortChatMessage"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "updateShort", text_len)) { *R = tstrdup ("updateShort"); return index; } else { index ++; }}
+  if (index == 4) { if (!strncmp (text, "updatesCombined", text_len)) { *R = tstrdup ("updatesCombined"); return index; } else { index ++; }}
+  if (index == 5) { if (!strncmp (text, "updates", text_len)) { *R = tstrdup ("updates"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_user (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x200250ba: return skip_constructor_user_empty (T);
+  case 0x7007b451: return skip_constructor_user_self (T);
+  case 0xcab35e18: return skip_constructor_user_contact (T);
+  case 0xd9ccc4ef: return skip_constructor_user_request (T);
+  case 0x075cf7a8: return skip_constructor_user_foreign (T);
+  case 0xd6016d7a: return skip_constructor_user_deleted (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_user (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_user_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_user_self (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_user_contact (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_user_request (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_user_foreign (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_user_deleted (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_user (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "userEmpty", cur_token_len)) {
+    out_int (0x200250ba);
+    local_next_token ();
+    if (store_constructor_user_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 8 && !memcmp (cur_token, "userSelf", cur_token_len)) {
+    out_int (0x7007b451);
+    local_next_token ();
+    if (store_constructor_user_self (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "userContact", cur_token_len)) {
+    out_int (0xcab35e18);
+    local_next_token ();
+    if (store_constructor_user_contact (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "userRequest", cur_token_len)) {
+    out_int (0xd9ccc4ef);
+    local_next_token ();
+    if (store_constructor_user_request (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "userForeign", cur_token_len)) {
+    out_int (0x075cf7a8);
+    local_next_token ();
+    if (store_constructor_user_foreign (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "userDeleted", cur_token_len)) {
+    out_int (0xd6016d7a);
+    local_next_token ();
+    if (store_constructor_user_deleted (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_user (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "userEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_user_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 8 && !memcmp (cur_token, "userSelf", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_user_self (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "userContact", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_user_contact (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "userRequest", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_user_request (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "userForeign", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_user_foreign (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "userDeleted", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_user_deleted (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_user (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x200250ba: res = fetch_constructor_user_empty (T); break;
+  case 0x7007b451: res = fetch_constructor_user_self (T); break;
+  case 0xcab35e18: res = fetch_constructor_user_contact (T); break;
+  case 0xd9ccc4ef: res = fetch_constructor_user_request (T); break;
+  case 0x075cf7a8: res = fetch_constructor_user_foreign (T); break;
+  case 0xd6016d7a: res = fetch_constructor_user_deleted (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_user (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_user_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_user_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_user_self (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_user_self (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_user_contact (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_user_contact (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_user_request (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_user_request (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_user_foreign (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_user_foreign (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_user_deleted (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_user_deleted (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_user (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_user); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "userEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 8 && !memcmp (cur_token, "userSelf", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_self (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "userContact", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_contact (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "userRequest", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_request (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "userForeign", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_foreign (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "userDeleted", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_deleted (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_user (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_user); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "userEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 8 && !memcmp (cur_token, "userSelf", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_self (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "userContact", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_contact (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "userRequest", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_request (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "userForeign", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_foreign (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "userDeleted", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_deleted (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_user (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "userEmpty", text_len)) { *R = tstrdup ("userEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "userSelf", text_len)) { *R = tstrdup ("userSelf"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "userContact", text_len)) { *R = tstrdup ("userContact"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "userRequest", text_len)) { *R = tstrdup ("userRequest"); return index; } else { index ++; }}
+  if (index == 4) { if (!strncmp (text, "userForeign", text_len)) { *R = tstrdup ("userForeign"); return index; } else { index ++; }}
+  if (index == 5) { if (!strncmp (text, "userDeleted", text_len)) { *R = tstrdup ("userDeleted"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_user_full (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x771095da: return skip_constructor_user_full (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_user_full (struct paramed_type *T) {
+  if (skip_constructor_user_full (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_user_full (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 8 && !memcmp (cur_token, "userFull", cur_token_len)) {
+    out_int (0x771095da);
+    local_next_token ();
+    if (store_constructor_user_full (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_user_full (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 8 && !memcmp (cur_token, "userFull", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_user_full (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_user_full (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x771095da: res = fetch_constructor_user_full (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_user_full (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_user_full (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_user_full (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_user_full); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 8 && !memcmp (cur_token, "userFull", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_full (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_user_full (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_user_full); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 8 && !memcmp (cur_token, "userFull", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_full (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_user_full (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "userFull", text_len)) { *R = tstrdup ("userFull"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_user_profile_photo (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x4f11bae1: return skip_constructor_user_profile_photo_empty (T);
+  case 0xd559d8c8: return skip_constructor_user_profile_photo (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_user_profile_photo (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_user_profile_photo_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_user_profile_photo (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_user_profile_photo (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 21 && !memcmp (cur_token, "userProfilePhotoEmpty", cur_token_len)) {
+    out_int (0x4f11bae1);
+    local_next_token ();
+    if (store_constructor_user_profile_photo_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "userProfilePhoto", cur_token_len)) {
+    out_int (0xd559d8c8);
+    local_next_token ();
+    if (store_constructor_user_profile_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_user_profile_photo (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 21 && !memcmp (cur_token, "userProfilePhotoEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_user_profile_photo_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "userProfilePhoto", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_user_profile_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_user_profile_photo (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x4f11bae1: res = fetch_constructor_user_profile_photo_empty (T); break;
+  case 0xd559d8c8: res = fetch_constructor_user_profile_photo (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_user_profile_photo (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_user_profile_photo_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_user_profile_photo_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_user_profile_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_user_profile_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_user_profile_photo (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_user_profile_photo); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 21 && !memcmp (cur_token, "userProfilePhotoEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_profile_photo_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "userProfilePhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_profile_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_user_profile_photo (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_user_profile_photo); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 21 && !memcmp (cur_token, "userProfilePhotoEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_profile_photo_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "userProfilePhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_profile_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_user_profile_photo (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "userProfilePhotoEmpty", text_len)) { *R = tstrdup ("userProfilePhotoEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "userProfilePhoto", text_len)) { *R = tstrdup ("userProfilePhoto"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_user_status (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x09d05049: return skip_constructor_user_status_empty (T);
+  case 0xedb93949: return skip_constructor_user_status_online (T);
+  case 0x008c703f: return skip_constructor_user_status_offline (T);
+  case 0xe26f42f1: return skip_constructor_user_status_recently (T);
+  case 0x07bf09fc: return skip_constructor_user_status_last_week (T);
+  case 0x77ebc742: return skip_constructor_user_status_last_month (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_user_status (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_user_status_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_user_status_online (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_user_status_offline (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_user_status_recently (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_user_status_last_week (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_user_status_last_month (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_user_status (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "userStatusEmpty", cur_token_len)) {
+    out_int (0x09d05049);
+    local_next_token ();
+    if (store_constructor_user_status_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "userStatusOnline", cur_token_len)) {
+    out_int (0xedb93949);
+    local_next_token ();
+    if (store_constructor_user_status_online (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "userStatusOffline", cur_token_len)) {
+    out_int (0x008c703f);
+    local_next_token ();
+    if (store_constructor_user_status_offline (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "userStatusRecently", cur_token_len)) {
+    out_int (0xe26f42f1);
+    local_next_token ();
+    if (store_constructor_user_status_recently (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "userStatusLastWeek", cur_token_len)) {
+    out_int (0x07bf09fc);
+    local_next_token ();
+    if (store_constructor_user_status_last_week (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "userStatusLastMonth", cur_token_len)) {
+    out_int (0x77ebc742);
+    local_next_token ();
+    if (store_constructor_user_status_last_month (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_user_status (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "userStatusEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_user_status_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "userStatusOnline", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_user_status_online (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "userStatusOffline", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_user_status_offline (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "userStatusRecently", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_user_status_recently (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "userStatusLastWeek", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_user_status_last_week (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "userStatusLastMonth", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_user_status_last_month (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_user_status (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x09d05049: res = fetch_constructor_user_status_empty (T); break;
+  case 0xedb93949: res = fetch_constructor_user_status_online (T); break;
+  case 0x008c703f: res = fetch_constructor_user_status_offline (T); break;
+  case 0xe26f42f1: res = fetch_constructor_user_status_recently (T); break;
+  case 0x07bf09fc: res = fetch_constructor_user_status_last_week (T); break;
+  case 0x77ebc742: res = fetch_constructor_user_status_last_month (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_user_status (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_user_status_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_user_status_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_user_status_online (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_user_status_online (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_user_status_offline (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_user_status_offline (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_user_status_recently (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_user_status_recently (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_user_status_last_week (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_user_status_last_week (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_user_status_last_month (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_user_status_last_month (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_user_status (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_user_status); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "userStatusEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_status_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "userStatusOnline", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_status_online (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "userStatusOffline", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_status_offline (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "userStatusRecently", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_status_recently (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "userStatusLastWeek", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_status_last_week (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "userStatusLastMonth", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_status_last_month (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_user_status (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_user_status); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 15 && !memcmp (cur_token, "userStatusEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_status_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "userStatusOnline", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_status_online (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "userStatusOffline", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_status_offline (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "userStatusRecently", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_status_recently (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "userStatusLastWeek", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_status_last_week (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "userStatusLastMonth", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_user_status_last_month (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_user_status (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "userStatusEmpty", text_len)) { *R = tstrdup ("userStatusEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "userStatusOnline", text_len)) { *R = tstrdup ("userStatusOnline"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "userStatusOffline", text_len)) { *R = tstrdup ("userStatusOffline"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "userStatusRecently", text_len)) { *R = tstrdup ("userStatusRecently"); return index; } else { index ++; }}
+  if (index == 4) { if (!strncmp (text, "userStatusLastWeek", text_len)) { *R = tstrdup ("userStatusLastWeek"); return index; } else { index ++; }}
+  if (index == 5) { if (!strncmp (text, "userStatusLastMonth", text_len)) { *R = tstrdup ("userStatusLastMonth"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_vector (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x1cb5c415: return skip_constructor_vector (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_vector (struct paramed_type *T) {
+  if (skip_constructor_vector (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_vector (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 6 && !memcmp (cur_token, "vector", cur_token_len)) {
+    out_int (0x1cb5c415);
+    local_next_token ();
+    if (store_constructor_vector (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_vector (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 6 && !memcmp (cur_token, "vector", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_vector (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_vector (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x1cb5c415: res = fetch_constructor_vector (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_vector (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_vector (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_vector (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_vector); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 6 && !memcmp (cur_token, "vector", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_vector (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_vector (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_vector); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 6 && !memcmp (cur_token, "vector", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_vector (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_vector (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "vector", text_len)) { *R = tstrdup ("vector"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_video (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xc10658a8: return skip_constructor_video_empty (T);
+  case 0x388fa391: return skip_constructor_video (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_video (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_video_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_video (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_video (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 10 && !memcmp (cur_token, "videoEmpty", cur_token_len)) {
+    out_int (0xc10658a8);
+    local_next_token ();
+    if (store_constructor_video_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 5 && !memcmp (cur_token, "video", cur_token_len)) {
+    out_int (0x388fa391);
+    local_next_token ();
+    if (store_constructor_video (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_video (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 10 && !memcmp (cur_token, "videoEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_video_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 5 && !memcmp (cur_token, "video", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_video (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_video (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xc10658a8: res = fetch_constructor_video_empty (T); break;
+  case 0x388fa391: res = fetch_constructor_video (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_video (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_video_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_video_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_video (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_video (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_video (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_video); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 10 && !memcmp (cur_token, "videoEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_video_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 5 && !memcmp (cur_token, "video", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_video (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_video (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_video); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 10 && !memcmp (cur_token, "videoEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_video_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 5 && !memcmp (cur_token, "video", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_video (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_video (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "videoEmpty", text_len)) { *R = tstrdup ("videoEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "video", text_len)) { *R = tstrdup ("video"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_wall_paper (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xccb03657: return skip_constructor_wall_paper (T);
+  case 0x63117f24: return skip_constructor_wall_paper_solid (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_wall_paper (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_wall_paper (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_wall_paper_solid (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_wall_paper (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "wallPaper", cur_token_len)) {
+    out_int (0xccb03657);
+    local_next_token ();
+    if (store_constructor_wall_paper (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "wallPaperSolid", cur_token_len)) {
+    out_int (0x63117f24);
+    local_next_token ();
+    if (store_constructor_wall_paper_solid (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_wall_paper (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "wallPaper", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_wall_paper (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "wallPaperSolid", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_wall_paper_solid (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_wall_paper (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xccb03657: res = fetch_constructor_wall_paper (T); break;
+  case 0x63117f24: res = fetch_constructor_wall_paper_solid (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_wall_paper (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_wall_paper (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_wall_paper (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_wall_paper_solid (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_wall_paper_solid (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_wall_paper (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_wall_paper); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "wallPaper", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_wall_paper (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "wallPaperSolid", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_wall_paper_solid (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_wall_paper (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_wall_paper); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 9 && !memcmp (cur_token, "wallPaper", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_wall_paper (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "wallPaperSolid", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_wall_paper_solid (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_wall_paper (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "wallPaper", text_len)) { *R = tstrdup ("wallPaper"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "wallPaperSolid", text_len)) { *R = tstrdup ("wallPaperSolid"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_account_password (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x5770e7a9: return skip_constructor_account_no_password (T);
+  case 0x739e5f72: return skip_constructor_account_password (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_account_password (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_account_no_password (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_account_password (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_account_password (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "account.noPassword", cur_token_len)) {
+    out_int (0x5770e7a9);
+    local_next_token ();
+    if (store_constructor_account_no_password (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "account.password", cur_token_len)) {
+    out_int (0x739e5f72);
+    local_next_token ();
+    if (store_constructor_account_password (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_account_password (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "account.noPassword", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_account_no_password (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "account.password", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_account_password (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_account_password (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x5770e7a9: res = fetch_constructor_account_no_password (T); break;
+  case 0x739e5f72: res = fetch_constructor_account_password (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_account_password (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_account_no_password (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_account_no_password (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_account_password (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_account_password (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_account_password (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_account_password); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "account.noPassword", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_account_no_password (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "account.password", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_account_password (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_account_password (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_account_password); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "account.noPassword", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_account_no_password (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "account.password", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_account_password (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_account_password (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "account.noPassword", text_len)) { *R = tstrdup ("account.noPassword"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "account.password", text_len)) { *R = tstrdup ("account.password"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_account_privacy_rules (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x554abb6f: return skip_constructor_account_privacy_rules (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_account_privacy_rules (struct paramed_type *T) {
+  if (skip_constructor_account_privacy_rules (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_account_privacy_rules (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 20 && !memcmp (cur_token, "account.privacyRules", cur_token_len)) {
+    out_int (0x554abb6f);
+    local_next_token ();
+    if (store_constructor_account_privacy_rules (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_account_privacy_rules (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 20 && !memcmp (cur_token, "account.privacyRules", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_account_privacy_rules (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_account_privacy_rules (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x554abb6f: res = fetch_constructor_account_privacy_rules (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_account_privacy_rules (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_account_privacy_rules (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_account_privacy_rules (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_account_privacy_rules); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 20 && !memcmp (cur_token, "account.privacyRules", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_account_privacy_rules (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_account_privacy_rules (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_account_privacy_rules); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 20 && !memcmp (cur_token, "account.privacyRules", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_account_privacy_rules (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_account_privacy_rules (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "account.privacyRules", text_len)) { *R = tstrdup ("account.privacyRules"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_account_sent_change_phone_code (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xa4f58c4c: return skip_constructor_account_sent_change_phone_code (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_account_sent_change_phone_code (struct paramed_type *T) {
+  if (skip_constructor_account_sent_change_phone_code (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_account_sent_change_phone_code (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 27 && !memcmp (cur_token, "account.sentChangePhoneCode", cur_token_len)) {
+    out_int (0xa4f58c4c);
+    local_next_token ();
+    if (store_constructor_account_sent_change_phone_code (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_account_sent_change_phone_code (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 27 && !memcmp (cur_token, "account.sentChangePhoneCode", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_account_sent_change_phone_code (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_account_sent_change_phone_code (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xa4f58c4c: res = fetch_constructor_account_sent_change_phone_code (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_account_sent_change_phone_code (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_account_sent_change_phone_code (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_account_sent_change_phone_code (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_account_sent_change_phone_code); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 27 && !memcmp (cur_token, "account.sentChangePhoneCode", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_account_sent_change_phone_code (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_account_sent_change_phone_code (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_account_sent_change_phone_code); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 27 && !memcmp (cur_token, "account.sentChangePhoneCode", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_account_sent_change_phone_code (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_account_sent_change_phone_code (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "account.sentChangePhoneCode", text_len)) { *R = tstrdup ("account.sentChangePhoneCode"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_auth_authorization (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xf6b673a4: return skip_constructor_auth_authorization (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_auth_authorization (struct paramed_type *T) {
+  if (skip_constructor_auth_authorization (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_auth_authorization (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "auth.authorization", cur_token_len)) {
+    out_int (0xf6b673a4);
+    local_next_token ();
+    if (store_constructor_auth_authorization (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_auth_authorization (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "auth.authorization", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_auth_authorization (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_auth_authorization (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xf6b673a4: res = fetch_constructor_auth_authorization (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_auth_authorization (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_auth_authorization (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_auth_authorization (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_auth_authorization); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "auth.authorization", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_auth_authorization (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_auth_authorization (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_auth_authorization); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "auth.authorization", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_auth_authorization (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_auth_authorization (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "auth.authorization", text_len)) { *R = tstrdup ("auth.authorization"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_auth_checked_phone (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xe300cc3b: return skip_constructor_auth_checked_phone (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_auth_checked_phone (struct paramed_type *T) {
+  if (skip_constructor_auth_checked_phone (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_auth_checked_phone (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "auth.checkedPhone", cur_token_len)) {
+    out_int (0xe300cc3b);
+    local_next_token ();
+    if (store_constructor_auth_checked_phone (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_auth_checked_phone (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "auth.checkedPhone", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_auth_checked_phone (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_auth_checked_phone (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xe300cc3b: res = fetch_constructor_auth_checked_phone (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_auth_checked_phone (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_auth_checked_phone (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_auth_checked_phone (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_auth_checked_phone); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "auth.checkedPhone", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_auth_checked_phone (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_auth_checked_phone (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_auth_checked_phone); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "auth.checkedPhone", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_auth_checked_phone (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_auth_checked_phone (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "auth.checkedPhone", text_len)) { *R = tstrdup ("auth.checkedPhone"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_auth_exported_authorization (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xdf969c2d: return skip_constructor_auth_exported_authorization (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_auth_exported_authorization (struct paramed_type *T) {
+  if (skip_constructor_auth_exported_authorization (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_auth_exported_authorization (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 26 && !memcmp (cur_token, "auth.exportedAuthorization", cur_token_len)) {
+    out_int (0xdf969c2d);
+    local_next_token ();
+    if (store_constructor_auth_exported_authorization (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_auth_exported_authorization (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 26 && !memcmp (cur_token, "auth.exportedAuthorization", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_auth_exported_authorization (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_auth_exported_authorization (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xdf969c2d: res = fetch_constructor_auth_exported_authorization (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_auth_exported_authorization (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_auth_exported_authorization (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_auth_exported_authorization (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_auth_exported_authorization); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 26 && !memcmp (cur_token, "auth.exportedAuthorization", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_auth_exported_authorization (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_auth_exported_authorization (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_auth_exported_authorization); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 26 && !memcmp (cur_token, "auth.exportedAuthorization", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_auth_exported_authorization (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_auth_exported_authorization (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "auth.exportedAuthorization", text_len)) { *R = tstrdup ("auth.exportedAuthorization"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_auth_sent_code (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xefed51d9: return skip_constructor_auth_sent_code (T);
+  case 0xe325edcf: return skip_constructor_auth_sent_app_code (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_auth_sent_code (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_auth_sent_code (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_auth_sent_app_code (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_auth_sent_code (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "auth.sentCode", cur_token_len)) {
+    out_int (0xefed51d9);
+    local_next_token ();
+    if (store_constructor_auth_sent_code (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "auth.sentAppCode", cur_token_len)) {
+    out_int (0xe325edcf);
+    local_next_token ();
+    if (store_constructor_auth_sent_app_code (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_auth_sent_code (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "auth.sentCode", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_auth_sent_code (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "auth.sentAppCode", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_auth_sent_app_code (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_auth_sent_code (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xefed51d9: res = fetch_constructor_auth_sent_code (T); break;
+  case 0xe325edcf: res = fetch_constructor_auth_sent_app_code (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_auth_sent_code (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_auth_sent_code (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_auth_sent_code (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_auth_sent_app_code (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_auth_sent_app_code (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_auth_sent_code (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_auth_sent_code); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "auth.sentCode", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_auth_sent_code (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "auth.sentAppCode", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_auth_sent_app_code (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_auth_sent_code (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_auth_sent_code); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "auth.sentCode", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_auth_sent_code (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "auth.sentAppCode", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_auth_sent_app_code (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_auth_sent_code (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "auth.sentCode", text_len)) { *R = tstrdup ("auth.sentCode"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "auth.sentAppCode", text_len)) { *R = tstrdup ("auth.sentAppCode"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_binlog_chat_participant (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xe97ad32a: return skip_constructor_binlog_chat_participant (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_binlog_chat_participant (struct paramed_type *T) {
+  if (skip_constructor_binlog_chat_participant (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_binlog_chat_participant (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 22 && !memcmp (cur_token, "binlog.chatParticipant", cur_token_len)) {
+    out_int (0xe97ad32a);
+    local_next_token ();
+    if (store_constructor_binlog_chat_participant (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_binlog_chat_participant (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 22 && !memcmp (cur_token, "binlog.chatParticipant", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_chat_participant (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_binlog_chat_participant (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xe97ad32a: res = fetch_constructor_binlog_chat_participant (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_binlog_chat_participant (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_binlog_chat_participant (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_binlog_chat_participant (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_binlog_chat_participant); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 22 && !memcmp (cur_token, "binlog.chatParticipant", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_chat_participant (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_binlog_chat_participant (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_binlog_chat_participant); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 22 && !memcmp (cur_token, "binlog.chatParticipant", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_chat_participant (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_binlog_chat_participant (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "binlog.chatParticipant", text_len)) { *R = tstrdup ("binlog.chatParticipant"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_binlog_file_location (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xae7ae5ce: return skip_constructor_binlog_file_location (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_binlog_file_location (struct paramed_type *T) {
+  if (skip_constructor_binlog_file_location (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_binlog_file_location (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.fileLocation", cur_token_len)) {
+    out_int (0xae7ae5ce);
+    local_next_token ();
+    if (store_constructor_binlog_file_location (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_binlog_file_location (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.fileLocation", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_file_location (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_binlog_file_location (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xae7ae5ce: res = fetch_constructor_binlog_file_location (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_binlog_file_location (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_binlog_file_location (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_binlog_file_location (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_binlog_file_location); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.fileLocation", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_file_location (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_binlog_file_location (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_binlog_file_location); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.fileLocation", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_file_location (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_binlog_file_location (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "binlog.fileLocation", text_len)) { *R = tstrdup ("binlog.fileLocation"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_binlog_update (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x3b06de69: return skip_constructor_binlog_start (T);
+  case 0x2194e0de: return skip_constructor_binlog_dc_option (T);
+  case 0xedf92e72: return skip_constructor_binlog_auth_key (T);
+  case 0x9e83dbdc: return skip_constructor_binlog_default_dc (T);
+  case 0x68a870e8: return skip_constructor_binlog_our_id (T);
+  case 0xbd684c2d: return skip_constructor_binlog_dc_signed (T);
+  case 0x0dc9db4e: return skip_constructor_binlog_dc_salt (T);
+  case 0xb6cb184c: return skip_constructor_binlog_set_dh_params (T);
+  case 0x2ca8c939: return skip_constructor_binlog_set_pts (T);
+  case 0xd95738ac: return skip_constructor_binlog_set_qts (T);
+  case 0x1d0f4b52: return skip_constructor_binlog_set_date (T);
+  case 0x6eeb2989: return skip_constructor_binlog_set_seq (T);
+  case 0xe9bc8aaf: return skip_constructor_binlog_user_add (T);
+  case 0xac55d447: return skip_constructor_binlog_user_delete (T);
+  case 0xbcb06c48: return skip_constructor_binlog_user_set_access_hash (T);
+  case 0x2234bf7c: return skip_constructor_binlog_user_set_phone (T);
+  case 0xb03f21f3: return skip_constructor_binlog_user_set_friend (T);
+  case 0x52de060e: return skip_constructor_binlog_user_set_full_photo (T);
+  case 0x5df80f13: return skip_constructor_binlog_user_set_blocked (T);
+  case 0x6cf87cb0: return skip_constructor_binlog_user_set_real_name (T);
+  case 0x51b333ce: return skip_constructor_binlog_user_set_name (T);
+  case 0xab5ebe28: return skip_constructor_binlog_user_set_photo (T);
+  case 0x63b77689: return skip_constructor_binlog_user_set_username (T);
+  case 0xee1b38e8: return skip_constructor_binlog_encr_chat_delete (T);
+  case 0xea055622: return skip_constructor_binlog_encr_chat_requested (T);
+  case 0xce758337: return skip_constructor_binlog_encr_chat_accepted (T);
+  case 0xe08a8252: return skip_constructor_binlog_encr_chat_init (T);
+  case 0xe19f09af: return skip_constructor_binlog_encr_chat_create (T);
+  case 0xabdc4560: return skip_constructor_binlog_encr_chat_set_access_hash (T);
+  case 0x3062cc4e: return skip_constructor_binlog_encr_chat_set_date (T);
+  case 0xc5d087e9: return skip_constructor_binlog_encr_chat_set_ttl (T);
+  case 0x633bf386: return skip_constructor_binlog_encr_chat_set_layer (T);
+  case 0x808087f7: return skip_constructor_binlog_encr_chat_set_state (T);
+  case 0xc23fc5e4: return skip_constructor_binlog_encr_chat_set_key (T);
+  case 0x65df932f: return skip_constructor_binlog_encr_chat_set_sha (T);
+  case 0x6d5b0bcf: return skip_constructor_binlog_encr_chat_exchange_request (T);
+  case 0x1cb792c0: return skip_constructor_binlog_encr_chat_exchange_accept (T);
+  case 0x25f33ed3: return skip_constructor_binlog_encr_chat_exchange_commit (T);
+  case 0x3dd3a05f: return skip_constructor_binlog_encr_chat_exchange_confirm (T);
+  case 0x6376966b: return skip_constructor_binlog_encr_chat_exchange_abort (T);
+  case 0x6dbc0700: return skip_constructor_binlog_encr_chat_update_seq (T);
+  case 0x68cd2542: return skip_constructor_binlog_encr_chat_set_seq (T);
+  case 0x405b6197: return skip_constructor_binlog_chat_create (T);
+  case 0x909f4a52: return skip_constructor_binlog_chat_change_flags (T);
+  case 0x8b56f537: return skip_constructor_binlog_chat_set_title (T);
+  case 0x4f7a9eea: return skip_constructor_binlog_chat_set_photo (T);
+  case 0xd9e3e8b3: return skip_constructor_binlog_chat_set_date (T);
+  case 0xef0c2e78: return skip_constructor_binlog_chat_set_version (T);
+  case 0xa0ffff9b: return skip_constructor_binlog_chat_set_admin (T);
+  case 0x3edbb8fd: return skip_constructor_binlog_chat_set_participants (T);
+  case 0xc8c8bc1a: return skip_constructor_binlog_chat_set_full_photo (T);
+  case 0xaf182ee9: return skip_constructor_binlog_chat_add_participant (T);
+  case 0xa3425cf9: return skip_constructor_binlog_chat_del_participant (T);
+  case 0xe67e2a28: return skip_constructor_binlog_create_message_text (T);
+  case 0x1ab1eb14: return skip_constructor_binlog_send_message_text (T);
+  case 0x342c8519: return skip_constructor_binlog_send_message_action_encr (T);
+  case 0x5bbcedfc: return skip_constructor_binlog_create_message_text_fwd (T);
+  case 0x02c79324: return skip_constructor_binlog_create_message_media (T);
+  case 0xee426aff: return skip_constructor_binlog_create_message_media_encr (T);
+  case 0x25d9b575: return skip_constructor_binlog_create_message_media_encr_pending (T);
+  case 0xafdbc52d: return skip_constructor_binlog_create_message_media_encr_sent (T);
+  case 0x0bee4021: return skip_constructor_binlog_create_message_media_fwd (T);
+  case 0xf50005b5: return skip_constructor_binlog_create_message_service (T);
+  case 0xf06c56fd: return skip_constructor_binlog_create_message_service_encr (T);
+  case 0x7e970fc9: return skip_constructor_binlog_create_message_service_fwd (T);
+  case 0x315d47a1: return skip_constructor_binlog_message_set_unread (T);
+  case 0x25321f01: return skip_constructor_binlog_message_set_unread_long (T);
+  case 0xee2b1802: return skip_constructor_binlog_set_message_sent (T);
+  case 0x3c873416: return skip_constructor_binlog_set_msg_id (T);
+  case 0x97a2a28c: return skip_constructor_binlog_delete_msg (T);
+  case 0x5ff33762: return skip_constructor_binlog_message_set_outbound (T);
+  case 0x235bf451: return skip_constructor_binlog_msg_seq_update (T);
+  case 0x6dd4d85f: return skip_constructor_binlog_msg_update (T);
+  case 0x83327955: return skip_constructor_binlog_reset_authorization (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_binlog_update (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_binlog_start (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_dc_option (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_auth_key (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_default_dc (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_our_id (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_dc_signed (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_dc_salt (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_set_dh_params (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_set_pts (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_set_qts (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_set_date (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_set_seq (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_user_add (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_user_delete (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_user_set_access_hash (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_user_set_phone (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_user_set_friend (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_user_set_full_photo (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_user_set_blocked (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_user_set_real_name (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_user_set_name (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_user_set_photo (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_user_set_username (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_delete (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_requested (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_accepted (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_init (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_create (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_set_access_hash (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_set_date (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_set_ttl (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_set_layer (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_set_state (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_set_key (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_set_sha (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_exchange_request (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_exchange_accept (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_exchange_commit (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_exchange_confirm (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_exchange_abort (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_update_seq (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_set_seq (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_chat_create (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_chat_change_flags (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_chat_set_title (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_chat_set_photo (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_chat_set_date (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_chat_set_version (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_chat_set_admin (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_chat_set_participants (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_chat_set_full_photo (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_chat_add_participant (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_chat_del_participant (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_create_message_text (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_send_message_text (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_send_message_action_encr (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_create_message_text_fwd (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_create_message_media (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_create_message_media_encr (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_create_message_media_encr_pending (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_create_message_media_encr_sent (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_create_message_media_fwd (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_create_message_service (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_create_message_service_encr (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_create_message_service_fwd (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_message_set_unread (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_message_set_unread_long (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_set_message_sent (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_set_msg_id (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_delete_msg (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_message_set_outbound (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_msg_seq_update (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_msg_update (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_reset_authorization (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_binlog_update (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 12 && !memcmp (cur_token, "binlog.start", cur_token_len)) {
+    out_int (0x3b06de69);
+    local_next_token ();
+    if (store_constructor_binlog_start (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "binlog.dcOption", cur_token_len)) {
+    out_int (0x2194e0de);
+    local_next_token ();
+    if (store_constructor_binlog_dc_option (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "binlog.authKey", cur_token_len)) {
+    out_int (0xedf92e72);
+    local_next_token ();
+    if (store_constructor_binlog_auth_key (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "binlog.defaultDc", cur_token_len)) {
+    out_int (0x9e83dbdc);
+    local_next_token ();
+    if (store_constructor_binlog_default_dc (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 12 && !memcmp (cur_token, "binlog.ourId", cur_token_len)) {
+    out_int (0x68a870e8);
+    local_next_token ();
+    if (store_constructor_binlog_our_id (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "binlog.dcSigned", cur_token_len)) {
+    out_int (0xbd684c2d);
+    local_next_token ();
+    if (store_constructor_binlog_dc_signed (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "binlog.dcSalt", cur_token_len)) {
+    out_int (0x0dc9db4e);
+    local_next_token ();
+    if (store_constructor_binlog_dc_salt (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "binlog.setDhParams", cur_token_len)) {
+    out_int (0xb6cb184c);
+    local_next_token ();
+    if (store_constructor_binlog_set_dh_params (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "binlog.setPts", cur_token_len)) {
+    out_int (0x2ca8c939);
+    local_next_token ();
+    if (store_constructor_binlog_set_pts (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "binlog.setQts", cur_token_len)) {
+    out_int (0xd95738ac);
+    local_next_token ();
+    if (store_constructor_binlog_set_qts (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "binlog.setDate", cur_token_len)) {
+    out_int (0x1d0f4b52);
+    local_next_token ();
+    if (store_constructor_binlog_set_date (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "binlog.setSeq", cur_token_len)) {
+    out_int (0x6eeb2989);
+    local_next_token ();
+    if (store_constructor_binlog_set_seq (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "binlog.userAdd", cur_token_len)) {
+    out_int (0xe9bc8aaf);
+    local_next_token ();
+    if (store_constructor_binlog_user_add (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "binlog.userDelete", cur_token_len)) {
+    out_int (0xac55d447);
+    local_next_token ();
+    if (store_constructor_binlog_user_delete (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "binlog.userSetAccessHash", cur_token_len)) {
+    out_int (0xbcb06c48);
+    local_next_token ();
+    if (store_constructor_binlog_user_set_access_hash (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.userSetPhone", cur_token_len)) {
+    out_int (0x2234bf7c);
+    local_next_token ();
+    if (store_constructor_binlog_user_set_phone (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "binlog.userSetFriend", cur_token_len)) {
+    out_int (0xb03f21f3);
+    local_next_token ();
+    if (store_constructor_binlog_user_set_friend (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "binlog.userSetFullPhoto", cur_token_len)) {
+    out_int (0x52de060e);
+    local_next_token ();
+    if (store_constructor_binlog_user_set_full_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.userSetBlocked", cur_token_len)) {
+    out_int (0x5df80f13);
+    local_next_token ();
+    if (store_constructor_binlog_user_set_blocked (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "binlog.userSetRealName", cur_token_len)) {
+    out_int (0x6cf87cb0);
+    local_next_token ();
+    if (store_constructor_binlog_user_set_real_name (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "binlog.userSetName", cur_token_len)) {
+    out_int (0x51b333ce);
+    local_next_token ();
+    if (store_constructor_binlog_user_set_name (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.userSetPhoto", cur_token_len)) {
+    out_int (0xab5ebe28);
+    local_next_token ();
+    if (store_constructor_binlog_user_set_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "binlog.userSetUsername", cur_token_len)) {
+    out_int (0x63b77689);
+    local_next_token ();
+    if (store_constructor_binlog_user_set_username (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatDelete", cur_token_len)) {
+    out_int (0xee1b38e8);
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_delete (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "binlog.encrChatRequested", cur_token_len)) {
+    out_int (0xea055622);
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_requested (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "binlog.encrChatAccepted", cur_token_len)) {
+    out_int (0xce758337);
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_accepted (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.encrChatInit", cur_token_len)) {
+    out_int (0xe08a8252);
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_init (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatCreate", cur_token_len)) {
+    out_int (0xe19f09af);
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_create (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "binlog.encrChatSetAccessHash", cur_token_len)) {
+    out_int (0xabdc4560);
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_set_access_hash (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "binlog.encrChatSetDate", cur_token_len)) {
+    out_int (0x3062cc4e);
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_set_date (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatSetTtl", cur_token_len)) {
+    out_int (0xc5d087e9);
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_set_ttl (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "binlog.encrChatSetLayer", cur_token_len)) {
+    out_int (0x633bf386);
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_set_layer (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "binlog.encrChatSetState", cur_token_len)) {
+    out_int (0x808087f7);
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_set_state (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatSetKey", cur_token_len)) {
+    out_int (0xc23fc5e4);
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_set_key (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatSetSha", cur_token_len)) {
+    out_int (0x65df932f);
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_set_sha (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 30 && !memcmp (cur_token, "binlog.encrChatExchangeRequest", cur_token_len)) {
+    out_int (0x6d5b0bcf);
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_exchange_request (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "binlog.encrChatExchangeAccept", cur_token_len)) {
+    out_int (0x1cb792c0);
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_exchange_accept (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "binlog.encrChatExchangeCommit", cur_token_len)) {
+    out_int (0x25f33ed3);
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_exchange_commit (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 30 && !memcmp (cur_token, "binlog.encrChatExchangeConfirm", cur_token_len)) {
+    out_int (0x3dd3a05f);
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_exchange_confirm (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "binlog.encrChatExchangeAbort", cur_token_len)) {
+    out_int (0x6376966b);
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_exchange_abort (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "binlog.encrChatUpdateSeq", cur_token_len)) {
+    out_int (0x6dbc0700);
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_update_seq (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatSetSeq", cur_token_len)) {
+    out_int (0x68cd2542);
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_set_seq (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "binlog.chatCreate", cur_token_len)) {
+    out_int (0x405b6197);
+    local_next_token ();
+    if (store_constructor_binlog_chat_create (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "binlog.chatChangeFlags", cur_token_len)) {
+    out_int (0x909f4a52);
+    local_next_token ();
+    if (store_constructor_binlog_chat_change_flags (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.chatSetTitle", cur_token_len)) {
+    out_int (0x8b56f537);
+    local_next_token ();
+    if (store_constructor_binlog_chat_set_title (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.chatSetPhoto", cur_token_len)) {
+    out_int (0x4f7a9eea);
+    local_next_token ();
+    if (store_constructor_binlog_chat_set_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "binlog.chatSetDate", cur_token_len)) {
+    out_int (0xd9e3e8b3);
+    local_next_token ();
+    if (store_constructor_binlog_chat_set_date (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.chatSetVersion", cur_token_len)) {
+    out_int (0xef0c2e78);
+    local_next_token ();
+    if (store_constructor_binlog_chat_set_version (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.chatSetAdmin", cur_token_len)) {
+    out_int (0xa0ffff9b);
+    local_next_token ();
+    if (store_constructor_binlog_chat_set_admin (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "binlog.chatSetParticipants", cur_token_len)) {
+    out_int (0x3edbb8fd);
+    local_next_token ();
+    if (store_constructor_binlog_chat_set_participants (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "binlog.chatSetFullPhoto", cur_token_len)) {
+    out_int (0xc8c8bc1a);
+    local_next_token ();
+    if (store_constructor_binlog_chat_set_full_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "binlog.chatAddParticipant", cur_token_len)) {
+    out_int (0xaf182ee9);
+    local_next_token ();
+    if (store_constructor_binlog_chat_add_participant (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "binlog.chatDelParticipant", cur_token_len)) {
+    out_int (0xa3425cf9);
+    local_next_token ();
+    if (store_constructor_binlog_chat_del_participant (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "binlog.createMessageText", cur_token_len)) {
+    out_int (0xe67e2a28);
+    local_next_token ();
+    if (store_constructor_binlog_create_message_text (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "binlog.sendMessageText", cur_token_len)) {
+    out_int (0x1ab1eb14);
+    local_next_token ();
+    if (store_constructor_binlog_send_message_text (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "binlog.sendMessageActionEncr", cur_token_len)) {
+    out_int (0x342c8519);
+    local_next_token ();
+    if (store_constructor_binlog_send_message_action_encr (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "binlog.createMessageTextFwd", cur_token_len)) {
+    out_int (0x5bbcedfc);
+    local_next_token ();
+    if (store_constructor_binlog_create_message_text_fwd (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "binlog.createMessageMedia", cur_token_len)) {
+    out_int (0x02c79324);
+    local_next_token ();
+    if (store_constructor_binlog_create_message_media (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "binlog.createMessageMediaEncr", cur_token_len)) {
+    out_int (0xee426aff);
+    local_next_token ();
+    if (store_constructor_binlog_create_message_media_encr (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 36 && !memcmp (cur_token, "binlog.createMessageMediaEncrPending", cur_token_len)) {
+    out_int (0x25d9b575);
+    local_next_token ();
+    if (store_constructor_binlog_create_message_media_encr_pending (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 33 && !memcmp (cur_token, "binlog.createMessageMediaEncrSent", cur_token_len)) {
+    out_int (0xafdbc52d);
+    local_next_token ();
+    if (store_constructor_binlog_create_message_media_encr_sent (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "binlog.createMessageMediaFwd", cur_token_len)) {
+    out_int (0x0bee4021);
+    local_next_token ();
+    if (store_constructor_binlog_create_message_media_fwd (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "binlog.createMessageService", cur_token_len)) {
+    out_int (0xf50005b5);
+    local_next_token ();
+    if (store_constructor_binlog_create_message_service (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 31 && !memcmp (cur_token, "binlog.createMessageServiceEncr", cur_token_len)) {
+    out_int (0xf06c56fd);
+    local_next_token ();
+    if (store_constructor_binlog_create_message_service_encr (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 30 && !memcmp (cur_token, "binlog.createMessageServiceFwd", cur_token_len)) {
+    out_int (0x7e970fc9);
+    local_next_token ();
+    if (store_constructor_binlog_create_message_service_fwd (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "binlog.messageSetUnread", cur_token_len)) {
+    out_int (0x315d47a1);
+    local_next_token ();
+    if (store_constructor_binlog_message_set_unread (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "binlog.messageSetUnreadLong", cur_token_len)) {
+    out_int (0x25321f01);
+    local_next_token ();
+    if (store_constructor_binlog_message_set_unread_long (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.setMessageSent", cur_token_len)) {
+    out_int (0xee2b1802);
+    local_next_token ();
+    if (store_constructor_binlog_set_message_sent (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "binlog.setMsgId", cur_token_len)) {
+    out_int (0x3c873416);
+    local_next_token ();
+    if (store_constructor_binlog_set_msg_id (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "binlog.deleteMsg", cur_token_len)) {
+    out_int (0x97a2a28c);
+    local_next_token ();
+    if (store_constructor_binlog_delete_msg (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "binlog.messageSetOutbound", cur_token_len)) {
+    out_int (0x5ff33762);
+    local_next_token ();
+    if (store_constructor_binlog_message_set_outbound (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.msgSeqUpdate", cur_token_len)) {
+    out_int (0x235bf451);
+    local_next_token ();
+    if (store_constructor_binlog_msg_seq_update (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "binlog.msgUpdate", cur_token_len)) {
+    out_int (0x6dd4d85f);
+    local_next_token ();
+    if (store_constructor_binlog_msg_update (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "binlog.resetAuthorization", cur_token_len)) {
+    out_int (0x83327955);
+    local_next_token ();
+    if (store_constructor_binlog_reset_authorization (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_binlog_update (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 12 && !memcmp (cur_token, "binlog.start", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_start (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "binlog.dcOption", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_dc_option (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "binlog.authKey", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_auth_key (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "binlog.defaultDc", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_default_dc (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 12 && !memcmp (cur_token, "binlog.ourId", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_our_id (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "binlog.dcSigned", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_dc_signed (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "binlog.dcSalt", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_dc_salt (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "binlog.setDhParams", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_set_dh_params (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "binlog.setPts", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_set_pts (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "binlog.setQts", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_set_qts (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "binlog.setDate", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_set_date (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "binlog.setSeq", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_set_seq (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "binlog.userAdd", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_user_add (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "binlog.userDelete", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_user_delete (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "binlog.userSetAccessHash", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_user_set_access_hash (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.userSetPhone", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_user_set_phone (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "binlog.userSetFriend", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_user_set_friend (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "binlog.userSetFullPhoto", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_user_set_full_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.userSetBlocked", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_user_set_blocked (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "binlog.userSetRealName", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_user_set_real_name (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "binlog.userSetName", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_user_set_name (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.userSetPhoto", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_user_set_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "binlog.userSetUsername", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_user_set_username (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatDelete", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_delete (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "binlog.encrChatRequested", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_requested (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "binlog.encrChatAccepted", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_accepted (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.encrChatInit", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_init (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatCreate", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_create (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "binlog.encrChatSetAccessHash", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_set_access_hash (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "binlog.encrChatSetDate", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_set_date (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatSetTtl", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_set_ttl (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "binlog.encrChatSetLayer", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_set_layer (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "binlog.encrChatSetState", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_set_state (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatSetKey", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_set_key (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatSetSha", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_set_sha (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 30 && !memcmp (cur_token, "binlog.encrChatExchangeRequest", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_exchange_request (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "binlog.encrChatExchangeAccept", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_exchange_accept (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "binlog.encrChatExchangeCommit", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_exchange_commit (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 30 && !memcmp (cur_token, "binlog.encrChatExchangeConfirm", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_exchange_confirm (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "binlog.encrChatExchangeAbort", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_exchange_abort (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "binlog.encrChatUpdateSeq", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_update_seq (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatSetSeq", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_encr_chat_set_seq (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "binlog.chatCreate", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_chat_create (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "binlog.chatChangeFlags", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_chat_change_flags (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.chatSetTitle", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_chat_set_title (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.chatSetPhoto", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_chat_set_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "binlog.chatSetDate", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_chat_set_date (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.chatSetVersion", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_chat_set_version (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.chatSetAdmin", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_chat_set_admin (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "binlog.chatSetParticipants", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_chat_set_participants (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "binlog.chatSetFullPhoto", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_chat_set_full_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "binlog.chatAddParticipant", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_chat_add_participant (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "binlog.chatDelParticipant", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_chat_del_participant (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "binlog.createMessageText", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_create_message_text (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "binlog.sendMessageText", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_send_message_text (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "binlog.sendMessageActionEncr", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_send_message_action_encr (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "binlog.createMessageTextFwd", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_create_message_text_fwd (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "binlog.createMessageMedia", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_create_message_media (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "binlog.createMessageMediaEncr", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_create_message_media_encr (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 36 && !memcmp (cur_token, "binlog.createMessageMediaEncrPending", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_create_message_media_encr_pending (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 33 && !memcmp (cur_token, "binlog.createMessageMediaEncrSent", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_create_message_media_encr_sent (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "binlog.createMessageMediaFwd", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_create_message_media_fwd (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "binlog.createMessageService", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_create_message_service (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 31 && !memcmp (cur_token, "binlog.createMessageServiceEncr", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_create_message_service_encr (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 30 && !memcmp (cur_token, "binlog.createMessageServiceFwd", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_create_message_service_fwd (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "binlog.messageSetUnread", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_message_set_unread (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "binlog.messageSetUnreadLong", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_message_set_unread_long (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.setMessageSent", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_set_message_sent (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "binlog.setMsgId", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_set_msg_id (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "binlog.deleteMsg", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_delete_msg (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "binlog.messageSetOutbound", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_message_set_outbound (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.msgSeqUpdate", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_msg_seq_update (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "binlog.msgUpdate", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_msg_update (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "binlog.resetAuthorization", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_binlog_reset_authorization (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_binlog_update (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x3b06de69: res = fetch_constructor_binlog_start (T); break;
+  case 0x2194e0de: res = fetch_constructor_binlog_dc_option (T); break;
+  case 0xedf92e72: res = fetch_constructor_binlog_auth_key (T); break;
+  case 0x9e83dbdc: res = fetch_constructor_binlog_default_dc (T); break;
+  case 0x68a870e8: res = fetch_constructor_binlog_our_id (T); break;
+  case 0xbd684c2d: res = fetch_constructor_binlog_dc_signed (T); break;
+  case 0x0dc9db4e: res = fetch_constructor_binlog_dc_salt (T); break;
+  case 0xb6cb184c: res = fetch_constructor_binlog_set_dh_params (T); break;
+  case 0x2ca8c939: res = fetch_constructor_binlog_set_pts (T); break;
+  case 0xd95738ac: res = fetch_constructor_binlog_set_qts (T); break;
+  case 0x1d0f4b52: res = fetch_constructor_binlog_set_date (T); break;
+  case 0x6eeb2989: res = fetch_constructor_binlog_set_seq (T); break;
+  case 0xe9bc8aaf: res = fetch_constructor_binlog_user_add (T); break;
+  case 0xac55d447: res = fetch_constructor_binlog_user_delete (T); break;
+  case 0xbcb06c48: res = fetch_constructor_binlog_user_set_access_hash (T); break;
+  case 0x2234bf7c: res = fetch_constructor_binlog_user_set_phone (T); break;
+  case 0xb03f21f3: res = fetch_constructor_binlog_user_set_friend (T); break;
+  case 0x52de060e: res = fetch_constructor_binlog_user_set_full_photo (T); break;
+  case 0x5df80f13: res = fetch_constructor_binlog_user_set_blocked (T); break;
+  case 0x6cf87cb0: res = fetch_constructor_binlog_user_set_real_name (T); break;
+  case 0x51b333ce: res = fetch_constructor_binlog_user_set_name (T); break;
+  case 0xab5ebe28: res = fetch_constructor_binlog_user_set_photo (T); break;
+  case 0x63b77689: res = fetch_constructor_binlog_user_set_username (T); break;
+  case 0xee1b38e8: res = fetch_constructor_binlog_encr_chat_delete (T); break;
+  case 0xea055622: res = fetch_constructor_binlog_encr_chat_requested (T); break;
+  case 0xce758337: res = fetch_constructor_binlog_encr_chat_accepted (T); break;
+  case 0xe08a8252: res = fetch_constructor_binlog_encr_chat_init (T); break;
+  case 0xe19f09af: res = fetch_constructor_binlog_encr_chat_create (T); break;
+  case 0xabdc4560: res = fetch_constructor_binlog_encr_chat_set_access_hash (T); break;
+  case 0x3062cc4e: res = fetch_constructor_binlog_encr_chat_set_date (T); break;
+  case 0xc5d087e9: res = fetch_constructor_binlog_encr_chat_set_ttl (T); break;
+  case 0x633bf386: res = fetch_constructor_binlog_encr_chat_set_layer (T); break;
+  case 0x808087f7: res = fetch_constructor_binlog_encr_chat_set_state (T); break;
+  case 0xc23fc5e4: res = fetch_constructor_binlog_encr_chat_set_key (T); break;
+  case 0x65df932f: res = fetch_constructor_binlog_encr_chat_set_sha (T); break;
+  case 0x6d5b0bcf: res = fetch_constructor_binlog_encr_chat_exchange_request (T); break;
+  case 0x1cb792c0: res = fetch_constructor_binlog_encr_chat_exchange_accept (T); break;
+  case 0x25f33ed3: res = fetch_constructor_binlog_encr_chat_exchange_commit (T); break;
+  case 0x3dd3a05f: res = fetch_constructor_binlog_encr_chat_exchange_confirm (T); break;
+  case 0x6376966b: res = fetch_constructor_binlog_encr_chat_exchange_abort (T); break;
+  case 0x6dbc0700: res = fetch_constructor_binlog_encr_chat_update_seq (T); break;
+  case 0x68cd2542: res = fetch_constructor_binlog_encr_chat_set_seq (T); break;
+  case 0x405b6197: res = fetch_constructor_binlog_chat_create (T); break;
+  case 0x909f4a52: res = fetch_constructor_binlog_chat_change_flags (T); break;
+  case 0x8b56f537: res = fetch_constructor_binlog_chat_set_title (T); break;
+  case 0x4f7a9eea: res = fetch_constructor_binlog_chat_set_photo (T); break;
+  case 0xd9e3e8b3: res = fetch_constructor_binlog_chat_set_date (T); break;
+  case 0xef0c2e78: res = fetch_constructor_binlog_chat_set_version (T); break;
+  case 0xa0ffff9b: res = fetch_constructor_binlog_chat_set_admin (T); break;
+  case 0x3edbb8fd: res = fetch_constructor_binlog_chat_set_participants (T); break;
+  case 0xc8c8bc1a: res = fetch_constructor_binlog_chat_set_full_photo (T); break;
+  case 0xaf182ee9: res = fetch_constructor_binlog_chat_add_participant (T); break;
+  case 0xa3425cf9: res = fetch_constructor_binlog_chat_del_participant (T); break;
+  case 0xe67e2a28: res = fetch_constructor_binlog_create_message_text (T); break;
+  case 0x1ab1eb14: res = fetch_constructor_binlog_send_message_text (T); break;
+  case 0x342c8519: res = fetch_constructor_binlog_send_message_action_encr (T); break;
+  case 0x5bbcedfc: res = fetch_constructor_binlog_create_message_text_fwd (T); break;
+  case 0x02c79324: res = fetch_constructor_binlog_create_message_media (T); break;
+  case 0xee426aff: res = fetch_constructor_binlog_create_message_media_encr (T); break;
+  case 0x25d9b575: res = fetch_constructor_binlog_create_message_media_encr_pending (T); break;
+  case 0xafdbc52d: res = fetch_constructor_binlog_create_message_media_encr_sent (T); break;
+  case 0x0bee4021: res = fetch_constructor_binlog_create_message_media_fwd (T); break;
+  case 0xf50005b5: res = fetch_constructor_binlog_create_message_service (T); break;
+  case 0xf06c56fd: res = fetch_constructor_binlog_create_message_service_encr (T); break;
+  case 0x7e970fc9: res = fetch_constructor_binlog_create_message_service_fwd (T); break;
+  case 0x315d47a1: res = fetch_constructor_binlog_message_set_unread (T); break;
+  case 0x25321f01: res = fetch_constructor_binlog_message_set_unread_long (T); break;
+  case 0xee2b1802: res = fetch_constructor_binlog_set_message_sent (T); break;
+  case 0x3c873416: res = fetch_constructor_binlog_set_msg_id (T); break;
+  case 0x97a2a28c: res = fetch_constructor_binlog_delete_msg (T); break;
+  case 0x5ff33762: res = fetch_constructor_binlog_message_set_outbound (T); break;
+  case 0x235bf451: res = fetch_constructor_binlog_msg_seq_update (T); break;
+  case 0x6dd4d85f: res = fetch_constructor_binlog_msg_update (T); break;
+  case 0x83327955: res = fetch_constructor_binlog_reset_authorization (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_binlog_update (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_binlog_start (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_start (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_dc_option (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_dc_option (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_auth_key (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_auth_key (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_default_dc (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_default_dc (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_our_id (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_our_id (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_dc_signed (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_dc_signed (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_dc_salt (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_dc_salt (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_set_dh_params (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_set_dh_params (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_set_pts (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_set_pts (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_set_qts (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_set_qts (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_set_date (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_set_date (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_set_seq (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_set_seq (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_user_add (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_user_add (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_user_delete (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_user_delete (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_user_set_access_hash (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_user_set_access_hash (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_user_set_phone (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_user_set_phone (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_user_set_friend (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_user_set_friend (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_user_set_full_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_user_set_full_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_user_set_blocked (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_user_set_blocked (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_user_set_real_name (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_user_set_real_name (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_user_set_name (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_user_set_name (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_user_set_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_user_set_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_user_set_username (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_user_set_username (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_delete (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_encr_chat_delete (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_requested (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_encr_chat_requested (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_accepted (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_encr_chat_accepted (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_init (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_encr_chat_init (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_create (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_encr_chat_create (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_set_access_hash (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_encr_chat_set_access_hash (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_set_date (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_encr_chat_set_date (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_set_ttl (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_encr_chat_set_ttl (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_set_layer (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_encr_chat_set_layer (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_set_state (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_encr_chat_set_state (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_set_key (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_encr_chat_set_key (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_set_sha (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_encr_chat_set_sha (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_exchange_request (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_encr_chat_exchange_request (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_exchange_accept (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_encr_chat_exchange_accept (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_exchange_commit (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_encr_chat_exchange_commit (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_exchange_confirm (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_encr_chat_exchange_confirm (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_exchange_abort (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_encr_chat_exchange_abort (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_update_seq (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_encr_chat_update_seq (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_encr_chat_set_seq (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_encr_chat_set_seq (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_chat_create (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_chat_create (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_chat_change_flags (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_chat_change_flags (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_chat_set_title (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_chat_set_title (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_chat_set_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_chat_set_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_chat_set_date (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_chat_set_date (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_chat_set_version (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_chat_set_version (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_chat_set_admin (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_chat_set_admin (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_chat_set_participants (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_chat_set_participants (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_chat_set_full_photo (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_chat_set_full_photo (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_chat_add_participant (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_chat_add_participant (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_chat_del_participant (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_chat_del_participant (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_create_message_text (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_create_message_text (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_send_message_text (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_send_message_text (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_send_message_action_encr (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_send_message_action_encr (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_create_message_text_fwd (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_create_message_text_fwd (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_create_message_media (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_create_message_media (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_create_message_media_encr (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_create_message_media_encr (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_create_message_media_encr_pending (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_create_message_media_encr_pending (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_create_message_media_encr_sent (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_create_message_media_encr_sent (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_create_message_media_fwd (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_create_message_media_fwd (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_create_message_service (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_create_message_service (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_create_message_service_encr (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_create_message_service_encr (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_create_message_service_fwd (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_create_message_service_fwd (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_message_set_unread (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_message_set_unread (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_message_set_unread_long (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_message_set_unread_long (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_set_message_sent (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_set_message_sent (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_set_msg_id (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_set_msg_id (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_delete_msg (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_delete_msg (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_message_set_outbound (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_message_set_outbound (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_msg_seq_update (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_msg_seq_update (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_msg_update (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_msg_update (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_binlog_reset_authorization (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_binlog_reset_authorization (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_binlog_update (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_binlog_update); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 12 && !memcmp (cur_token, "binlog.start", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_start (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "binlog.dcOption", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_dc_option (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "binlog.authKey", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_auth_key (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "binlog.defaultDc", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_default_dc (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 12 && !memcmp (cur_token, "binlog.ourId", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_our_id (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "binlog.dcSigned", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_dc_signed (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "binlog.dcSalt", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_dc_salt (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "binlog.setDhParams", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_set_dh_params (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "binlog.setPts", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_set_pts (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "binlog.setQts", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_set_qts (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "binlog.setDate", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_set_date (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "binlog.setSeq", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_set_seq (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "binlog.userAdd", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_user_add (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "binlog.userDelete", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_user_delete (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "binlog.userSetAccessHash", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_user_set_access_hash (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.userSetPhone", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_user_set_phone (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "binlog.userSetFriend", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_user_set_friend (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "binlog.userSetFullPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_user_set_full_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.userSetBlocked", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_user_set_blocked (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "binlog.userSetRealName", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_user_set_real_name (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "binlog.userSetName", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_user_set_name (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.userSetPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_user_set_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "binlog.userSetUsername", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_user_set_username (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatDelete", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_delete (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "binlog.encrChatRequested", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_requested (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "binlog.encrChatAccepted", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_accepted (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.encrChatInit", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_init (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatCreate", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_create (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "binlog.encrChatSetAccessHash", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_set_access_hash (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "binlog.encrChatSetDate", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_set_date (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatSetTtl", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_set_ttl (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "binlog.encrChatSetLayer", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_set_layer (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "binlog.encrChatSetState", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_set_state (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatSetKey", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_set_key (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatSetSha", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_set_sha (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 30 && !memcmp (cur_token, "binlog.encrChatExchangeRequest", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_exchange_request (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "binlog.encrChatExchangeAccept", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_exchange_accept (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "binlog.encrChatExchangeCommit", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_exchange_commit (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 30 && !memcmp (cur_token, "binlog.encrChatExchangeConfirm", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_exchange_confirm (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "binlog.encrChatExchangeAbort", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_exchange_abort (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "binlog.encrChatUpdateSeq", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_update_seq (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatSetSeq", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_set_seq (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "binlog.chatCreate", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_chat_create (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "binlog.chatChangeFlags", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_chat_change_flags (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.chatSetTitle", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_chat_set_title (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.chatSetPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_chat_set_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "binlog.chatSetDate", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_chat_set_date (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.chatSetVersion", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_chat_set_version (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.chatSetAdmin", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_chat_set_admin (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "binlog.chatSetParticipants", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_chat_set_participants (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "binlog.chatSetFullPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_chat_set_full_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "binlog.chatAddParticipant", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_chat_add_participant (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "binlog.chatDelParticipant", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_chat_del_participant (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "binlog.createMessageText", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_create_message_text (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "binlog.sendMessageText", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_send_message_text (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "binlog.sendMessageActionEncr", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_send_message_action_encr (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "binlog.createMessageTextFwd", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_create_message_text_fwd (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "binlog.createMessageMedia", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_create_message_media (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "binlog.createMessageMediaEncr", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_create_message_media_encr (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 36 && !memcmp (cur_token, "binlog.createMessageMediaEncrPending", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_create_message_media_encr_pending (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 33 && !memcmp (cur_token, "binlog.createMessageMediaEncrSent", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_create_message_media_encr_sent (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "binlog.createMessageMediaFwd", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_create_message_media_fwd (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "binlog.createMessageService", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_create_message_service (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 31 && !memcmp (cur_token, "binlog.createMessageServiceEncr", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_create_message_service_encr (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 30 && !memcmp (cur_token, "binlog.createMessageServiceFwd", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_create_message_service_fwd (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "binlog.messageSetUnread", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_message_set_unread (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "binlog.messageSetUnreadLong", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_message_set_unread_long (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.setMessageSent", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_set_message_sent (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "binlog.setMsgId", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_set_msg_id (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "binlog.deleteMsg", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_delete_msg (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "binlog.messageSetOutbound", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_message_set_outbound (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.msgSeqUpdate", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_msg_seq_update (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "binlog.msgUpdate", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_msg_update (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "binlog.resetAuthorization", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_reset_authorization (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_binlog_update (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_binlog_update); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 12 && !memcmp (cur_token, "binlog.start", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_start (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "binlog.dcOption", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_dc_option (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "binlog.authKey", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_auth_key (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "binlog.defaultDc", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_default_dc (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 12 && !memcmp (cur_token, "binlog.ourId", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_our_id (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "binlog.dcSigned", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_dc_signed (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "binlog.dcSalt", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_dc_salt (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "binlog.setDhParams", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_set_dh_params (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "binlog.setPts", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_set_pts (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "binlog.setQts", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_set_qts (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "binlog.setDate", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_set_date (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "binlog.setSeq", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_set_seq (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "binlog.userAdd", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_user_add (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "binlog.userDelete", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_user_delete (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "binlog.userSetAccessHash", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_user_set_access_hash (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.userSetPhone", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_user_set_phone (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "binlog.userSetFriend", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_user_set_friend (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "binlog.userSetFullPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_user_set_full_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.userSetBlocked", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_user_set_blocked (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "binlog.userSetRealName", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_user_set_real_name (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "binlog.userSetName", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_user_set_name (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.userSetPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_user_set_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "binlog.userSetUsername", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_user_set_username (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatDelete", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_delete (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "binlog.encrChatRequested", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_requested (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "binlog.encrChatAccepted", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_accepted (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.encrChatInit", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_init (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatCreate", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_create (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "binlog.encrChatSetAccessHash", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_set_access_hash (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "binlog.encrChatSetDate", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_set_date (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatSetTtl", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_set_ttl (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "binlog.encrChatSetLayer", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_set_layer (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "binlog.encrChatSetState", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_set_state (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatSetKey", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_set_key (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatSetSha", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_set_sha (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 30 && !memcmp (cur_token, "binlog.encrChatExchangeRequest", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_exchange_request (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "binlog.encrChatExchangeAccept", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_exchange_accept (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "binlog.encrChatExchangeCommit", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_exchange_commit (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 30 && !memcmp (cur_token, "binlog.encrChatExchangeConfirm", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_exchange_confirm (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "binlog.encrChatExchangeAbort", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_exchange_abort (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "binlog.encrChatUpdateSeq", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_update_seq (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.encrChatSetSeq", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_encr_chat_set_seq (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "binlog.chatCreate", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_chat_create (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "binlog.chatChangeFlags", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_chat_change_flags (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.chatSetTitle", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_chat_set_title (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.chatSetPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_chat_set_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "binlog.chatSetDate", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_chat_set_date (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.chatSetVersion", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_chat_set_version (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.chatSetAdmin", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_chat_set_admin (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "binlog.chatSetParticipants", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_chat_set_participants (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "binlog.chatSetFullPhoto", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_chat_set_full_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "binlog.chatAddParticipant", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_chat_add_participant (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "binlog.chatDelParticipant", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_chat_del_participant (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "binlog.createMessageText", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_create_message_text (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "binlog.sendMessageText", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_send_message_text (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "binlog.sendMessageActionEncr", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_send_message_action_encr (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "binlog.createMessageTextFwd", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_create_message_text_fwd (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "binlog.createMessageMedia", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_create_message_media (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "binlog.createMessageMediaEncr", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_create_message_media_encr (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 36 && !memcmp (cur_token, "binlog.createMessageMediaEncrPending", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_create_message_media_encr_pending (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 33 && !memcmp (cur_token, "binlog.createMessageMediaEncrSent", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_create_message_media_encr_sent (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "binlog.createMessageMediaFwd", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_create_message_media_fwd (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "binlog.createMessageService", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_create_message_service (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 31 && !memcmp (cur_token, "binlog.createMessageServiceEncr", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_create_message_service_encr (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 30 && !memcmp (cur_token, "binlog.createMessageServiceFwd", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_create_message_service_fwd (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "binlog.messageSetUnread", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_message_set_unread (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "binlog.messageSetUnreadLong", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_message_set_unread_long (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "binlog.setMessageSent", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_set_message_sent (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "binlog.setMsgId", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_set_msg_id (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "binlog.deleteMsg", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_delete_msg (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "binlog.messageSetOutbound", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_message_set_outbound (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "binlog.msgSeqUpdate", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_msg_seq_update (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "binlog.msgUpdate", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_msg_update (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "binlog.resetAuthorization", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_binlog_reset_authorization (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_binlog_update (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "binlog.start", text_len)) { *R = tstrdup ("binlog.start"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "binlog.dcOption", text_len)) { *R = tstrdup ("binlog.dcOption"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "binlog.authKey", text_len)) { *R = tstrdup ("binlog.authKey"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "binlog.defaultDc", text_len)) { *R = tstrdup ("binlog.defaultDc"); return index; } else { index ++; }}
+  if (index == 4) { if (!strncmp (text, "binlog.ourId", text_len)) { *R = tstrdup ("binlog.ourId"); return index; } else { index ++; }}
+  if (index == 5) { if (!strncmp (text, "binlog.dcSigned", text_len)) { *R = tstrdup ("binlog.dcSigned"); return index; } else { index ++; }}
+  if (index == 6) { if (!strncmp (text, "binlog.dcSalt", text_len)) { *R = tstrdup ("binlog.dcSalt"); return index; } else { index ++; }}
+  if (index == 7) { if (!strncmp (text, "binlog.setDhParams", text_len)) { *R = tstrdup ("binlog.setDhParams"); return index; } else { index ++; }}
+  if (index == 8) { if (!strncmp (text, "binlog.setPts", text_len)) { *R = tstrdup ("binlog.setPts"); return index; } else { index ++; }}
+  if (index == 9) { if (!strncmp (text, "binlog.setQts", text_len)) { *R = tstrdup ("binlog.setQts"); return index; } else { index ++; }}
+  if (index == 10) { if (!strncmp (text, "binlog.setDate", text_len)) { *R = tstrdup ("binlog.setDate"); return index; } else { index ++; }}
+  if (index == 11) { if (!strncmp (text, "binlog.setSeq", text_len)) { *R = tstrdup ("binlog.setSeq"); return index; } else { index ++; }}
+  if (index == 12) { if (!strncmp (text, "binlog.userAdd", text_len)) { *R = tstrdup ("binlog.userAdd"); return index; } else { index ++; }}
+  if (index == 13) { if (!strncmp (text, "binlog.userDelete", text_len)) { *R = tstrdup ("binlog.userDelete"); return index; } else { index ++; }}
+  if (index == 14) { if (!strncmp (text, "binlog.userSetAccessHash", text_len)) { *R = tstrdup ("binlog.userSetAccessHash"); return index; } else { index ++; }}
+  if (index == 15) { if (!strncmp (text, "binlog.userSetPhone", text_len)) { *R = tstrdup ("binlog.userSetPhone"); return index; } else { index ++; }}
+  if (index == 16) { if (!strncmp (text, "binlog.userSetFriend", text_len)) { *R = tstrdup ("binlog.userSetFriend"); return index; } else { index ++; }}
+  if (index == 17) { if (!strncmp (text, "binlog.userSetFullPhoto", text_len)) { *R = tstrdup ("binlog.userSetFullPhoto"); return index; } else { index ++; }}
+  if (index == 18) { if (!strncmp (text, "binlog.userSetBlocked", text_len)) { *R = tstrdup ("binlog.userSetBlocked"); return index; } else { index ++; }}
+  if (index == 19) { if (!strncmp (text, "binlog.userSetRealName", text_len)) { *R = tstrdup ("binlog.userSetRealName"); return index; } else { index ++; }}
+  if (index == 20) { if (!strncmp (text, "binlog.userSetName", text_len)) { *R = tstrdup ("binlog.userSetName"); return index; } else { index ++; }}
+  if (index == 21) { if (!strncmp (text, "binlog.userSetPhoto", text_len)) { *R = tstrdup ("binlog.userSetPhoto"); return index; } else { index ++; }}
+  if (index == 22) { if (!strncmp (text, "binlog.userSetUsername", text_len)) { *R = tstrdup ("binlog.userSetUsername"); return index; } else { index ++; }}
+  if (index == 23) { if (!strncmp (text, "binlog.encrChatDelete", text_len)) { *R = tstrdup ("binlog.encrChatDelete"); return index; } else { index ++; }}
+  if (index == 24) { if (!strncmp (text, "binlog.encrChatRequested", text_len)) { *R = tstrdup ("binlog.encrChatRequested"); return index; } else { index ++; }}
+  if (index == 25) { if (!strncmp (text, "binlog.encrChatAccepted", text_len)) { *R = tstrdup ("binlog.encrChatAccepted"); return index; } else { index ++; }}
+  if (index == 26) { if (!strncmp (text, "binlog.encrChatInit", text_len)) { *R = tstrdup ("binlog.encrChatInit"); return index; } else { index ++; }}
+  if (index == 27) { if (!strncmp (text, "binlog.encrChatCreate", text_len)) { *R = tstrdup ("binlog.encrChatCreate"); return index; } else { index ++; }}
+  if (index == 28) { if (!strncmp (text, "binlog.encrChatSetAccessHash", text_len)) { *R = tstrdup ("binlog.encrChatSetAccessHash"); return index; } else { index ++; }}
+  if (index == 29) { if (!strncmp (text, "binlog.encrChatSetDate", text_len)) { *R = tstrdup ("binlog.encrChatSetDate"); return index; } else { index ++; }}
+  if (index == 30) { if (!strncmp (text, "binlog.encrChatSetTtl", text_len)) { *R = tstrdup ("binlog.encrChatSetTtl"); return index; } else { index ++; }}
+  if (index == 31) { if (!strncmp (text, "binlog.encrChatSetLayer", text_len)) { *R = tstrdup ("binlog.encrChatSetLayer"); return index; } else { index ++; }}
+  if (index == 32) { if (!strncmp (text, "binlog.encrChatSetState", text_len)) { *R = tstrdup ("binlog.encrChatSetState"); return index; } else { index ++; }}
+  if (index == 33) { if (!strncmp (text, "binlog.encrChatSetKey", text_len)) { *R = tstrdup ("binlog.encrChatSetKey"); return index; } else { index ++; }}
+  if (index == 34) { if (!strncmp (text, "binlog.encrChatSetSha", text_len)) { *R = tstrdup ("binlog.encrChatSetSha"); return index; } else { index ++; }}
+  if (index == 35) { if (!strncmp (text, "binlog.encrChatExchangeRequest", text_len)) { *R = tstrdup ("binlog.encrChatExchangeRequest"); return index; } else { index ++; }}
+  if (index == 36) { if (!strncmp (text, "binlog.encrChatExchangeAccept", text_len)) { *R = tstrdup ("binlog.encrChatExchangeAccept"); return index; } else { index ++; }}
+  if (index == 37) { if (!strncmp (text, "binlog.encrChatExchangeCommit", text_len)) { *R = tstrdup ("binlog.encrChatExchangeCommit"); return index; } else { index ++; }}
+  if (index == 38) { if (!strncmp (text, "binlog.encrChatExchangeConfirm", text_len)) { *R = tstrdup ("binlog.encrChatExchangeConfirm"); return index; } else { index ++; }}
+  if (index == 39) { if (!strncmp (text, "binlog.encrChatExchangeAbort", text_len)) { *R = tstrdup ("binlog.encrChatExchangeAbort"); return index; } else { index ++; }}
+  if (index == 40) { if (!strncmp (text, "binlog.encrChatUpdateSeq", text_len)) { *R = tstrdup ("binlog.encrChatUpdateSeq"); return index; } else { index ++; }}
+  if (index == 41) { if (!strncmp (text, "binlog.encrChatSetSeq", text_len)) { *R = tstrdup ("binlog.encrChatSetSeq"); return index; } else { index ++; }}
+  if (index == 42) { if (!strncmp (text, "binlog.chatCreate", text_len)) { *R = tstrdup ("binlog.chatCreate"); return index; } else { index ++; }}
+  if (index == 43) { if (!strncmp (text, "binlog.chatChangeFlags", text_len)) { *R = tstrdup ("binlog.chatChangeFlags"); return index; } else { index ++; }}
+  if (index == 44) { if (!strncmp (text, "binlog.chatSetTitle", text_len)) { *R = tstrdup ("binlog.chatSetTitle"); return index; } else { index ++; }}
+  if (index == 45) { if (!strncmp (text, "binlog.chatSetPhoto", text_len)) { *R = tstrdup ("binlog.chatSetPhoto"); return index; } else { index ++; }}
+  if (index == 46) { if (!strncmp (text, "binlog.chatSetDate", text_len)) { *R = tstrdup ("binlog.chatSetDate"); return index; } else { index ++; }}
+  if (index == 47) { if (!strncmp (text, "binlog.chatSetVersion", text_len)) { *R = tstrdup ("binlog.chatSetVersion"); return index; } else { index ++; }}
+  if (index == 48) { if (!strncmp (text, "binlog.chatSetAdmin", text_len)) { *R = tstrdup ("binlog.chatSetAdmin"); return index; } else { index ++; }}
+  if (index == 49) { if (!strncmp (text, "binlog.chatSetParticipants", text_len)) { *R = tstrdup ("binlog.chatSetParticipants"); return index; } else { index ++; }}
+  if (index == 50) { if (!strncmp (text, "binlog.chatSetFullPhoto", text_len)) { *R = tstrdup ("binlog.chatSetFullPhoto"); return index; } else { index ++; }}
+  if (index == 51) { if (!strncmp (text, "binlog.chatAddParticipant", text_len)) { *R = tstrdup ("binlog.chatAddParticipant"); return index; } else { index ++; }}
+  if (index == 52) { if (!strncmp (text, "binlog.chatDelParticipant", text_len)) { *R = tstrdup ("binlog.chatDelParticipant"); return index; } else { index ++; }}
+  if (index == 53) { if (!strncmp (text, "binlog.createMessageText", text_len)) { *R = tstrdup ("binlog.createMessageText"); return index; } else { index ++; }}
+  if (index == 54) { if (!strncmp (text, "binlog.sendMessageText", text_len)) { *R = tstrdup ("binlog.sendMessageText"); return index; } else { index ++; }}
+  if (index == 55) { if (!strncmp (text, "binlog.sendMessageActionEncr", text_len)) { *R = tstrdup ("binlog.sendMessageActionEncr"); return index; } else { index ++; }}
+  if (index == 56) { if (!strncmp (text, "binlog.createMessageTextFwd", text_len)) { *R = tstrdup ("binlog.createMessageTextFwd"); return index; } else { index ++; }}
+  if (index == 57) { if (!strncmp (text, "binlog.createMessageMedia", text_len)) { *R = tstrdup ("binlog.createMessageMedia"); return index; } else { index ++; }}
+  if (index == 58) { if (!strncmp (text, "binlog.createMessageMediaEncr", text_len)) { *R = tstrdup ("binlog.createMessageMediaEncr"); return index; } else { index ++; }}
+  if (index == 59) { if (!strncmp (text, "binlog.createMessageMediaEncrPending", text_len)) { *R = tstrdup ("binlog.createMessageMediaEncrPending"); return index; } else { index ++; }}
+  if (index == 60) { if (!strncmp (text, "binlog.createMessageMediaEncrSent", text_len)) { *R = tstrdup ("binlog.createMessageMediaEncrSent"); return index; } else { index ++; }}
+  if (index == 61) { if (!strncmp (text, "binlog.createMessageMediaFwd", text_len)) { *R = tstrdup ("binlog.createMessageMediaFwd"); return index; } else { index ++; }}
+  if (index == 62) { if (!strncmp (text, "binlog.createMessageService", text_len)) { *R = tstrdup ("binlog.createMessageService"); return index; } else { index ++; }}
+  if (index == 63) { if (!strncmp (text, "binlog.createMessageServiceEncr", text_len)) { *R = tstrdup ("binlog.createMessageServiceEncr"); return index; } else { index ++; }}
+  if (index == 64) { if (!strncmp (text, "binlog.createMessageServiceFwd", text_len)) { *R = tstrdup ("binlog.createMessageServiceFwd"); return index; } else { index ++; }}
+  if (index == 65) { if (!strncmp (text, "binlog.messageSetUnread", text_len)) { *R = tstrdup ("binlog.messageSetUnread"); return index; } else { index ++; }}
+  if (index == 66) { if (!strncmp (text, "binlog.messageSetUnreadLong", text_len)) { *R = tstrdup ("binlog.messageSetUnreadLong"); return index; } else { index ++; }}
+  if (index == 67) { if (!strncmp (text, "binlog.setMessageSent", text_len)) { *R = tstrdup ("binlog.setMessageSent"); return index; } else { index ++; }}
+  if (index == 68) { if (!strncmp (text, "binlog.setMsgId", text_len)) { *R = tstrdup ("binlog.setMsgId"); return index; } else { index ++; }}
+  if (index == 69) { if (!strncmp (text, "binlog.deleteMsg", text_len)) { *R = tstrdup ("binlog.deleteMsg"); return index; } else { index ++; }}
+  if (index == 70) { if (!strncmp (text, "binlog.messageSetOutbound", text_len)) { *R = tstrdup ("binlog.messageSetOutbound"); return index; } else { index ++; }}
+  if (index == 71) { if (!strncmp (text, "binlog.msgSeqUpdate", text_len)) { *R = tstrdup ("binlog.msgSeqUpdate"); return index; } else { index ++; }}
+  if (index == 72) { if (!strncmp (text, "binlog.msgUpdate", text_len)) { *R = tstrdup ("binlog.msgUpdate"); return index; } else { index ++; }}
+  if (index == 73) { if (!strncmp (text, "binlog.resetAuthorization", text_len)) { *R = tstrdup ("binlog.resetAuthorization"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_contacts_blocked (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x1c138d15: return skip_constructor_contacts_blocked (T);
+  case 0x900802a1: return skip_constructor_contacts_blocked_slice (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_contacts_blocked (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_contacts_blocked (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_contacts_blocked_slice (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_contacts_blocked (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 16 && !memcmp (cur_token, "contacts.blocked", cur_token_len)) {
+    out_int (0x1c138d15);
+    local_next_token ();
+    if (store_constructor_contacts_blocked (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "contacts.blockedSlice", cur_token_len)) {
+    out_int (0x900802a1);
+    local_next_token ();
+    if (store_constructor_contacts_blocked_slice (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_contacts_blocked (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 16 && !memcmp (cur_token, "contacts.blocked", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_contacts_blocked (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "contacts.blockedSlice", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_contacts_blocked_slice (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_contacts_blocked (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x1c138d15: res = fetch_constructor_contacts_blocked (T); break;
+  case 0x900802a1: res = fetch_constructor_contacts_blocked_slice (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_contacts_blocked (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_contacts_blocked (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_contacts_blocked (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_contacts_blocked_slice (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_contacts_blocked_slice (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_contacts_blocked (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_blocked); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 16 && !memcmp (cur_token, "contacts.blocked", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_blocked (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "contacts.blockedSlice", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_blocked_slice (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_contacts_blocked (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_blocked); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 16 && !memcmp (cur_token, "contacts.blocked", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_blocked (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "contacts.blockedSlice", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_blocked_slice (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_contacts_blocked (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "contacts.blocked", text_len)) { *R = tstrdup ("contacts.blocked"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "contacts.blockedSlice", text_len)) { *R = tstrdup ("contacts.blockedSlice"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_contacts_contacts (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xb74ba9d2: return skip_constructor_contacts_contacts_not_modified (T);
+  case 0x6f8b8cb2: return skip_constructor_contacts_contacts (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_contacts_contacts (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_contacts_contacts_not_modified (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_contacts_contacts (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_contacts_contacts (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 28 && !memcmp (cur_token, "contacts.contactsNotModified", cur_token_len)) {
+    out_int (0xb74ba9d2);
+    local_next_token ();
+    if (store_constructor_contacts_contacts_not_modified (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "contacts.contacts", cur_token_len)) {
+    out_int (0x6f8b8cb2);
+    local_next_token ();
+    if (store_constructor_contacts_contacts (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_contacts_contacts (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 28 && !memcmp (cur_token, "contacts.contactsNotModified", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_contacts_contacts_not_modified (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "contacts.contacts", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_contacts_contacts (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_contacts_contacts (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xb74ba9d2: res = fetch_constructor_contacts_contacts_not_modified (T); break;
+  case 0x6f8b8cb2: res = fetch_constructor_contacts_contacts (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_contacts_contacts (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_contacts_contacts_not_modified (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_contacts_contacts_not_modified (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_contacts_contacts (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_contacts_contacts (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_contacts_contacts (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_contacts); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 28 && !memcmp (cur_token, "contacts.contactsNotModified", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_contacts_not_modified (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "contacts.contacts", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_contacts (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_contacts_contacts (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_contacts); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 28 && !memcmp (cur_token, "contacts.contactsNotModified", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_contacts_not_modified (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "contacts.contacts", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_contacts (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_contacts_contacts (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "contacts.contactsNotModified", text_len)) { *R = tstrdup ("contacts.contactsNotModified"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "contacts.contacts", text_len)) { *R = tstrdup ("contacts.contacts"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_contacts_foreign_link (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x133421f8: return skip_constructor_contacts_foreign_link_unknown (T);
+  case 0xa7801f47: return skip_constructor_contacts_foreign_link_requested (T);
+  case 0x1bea8ce1: return skip_constructor_contacts_foreign_link_mutual (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_contacts_foreign_link (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_contacts_foreign_link_unknown (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_contacts_foreign_link_requested (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_contacts_foreign_link_mutual (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_contacts_foreign_link (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 27 && !memcmp (cur_token, "contacts.foreignLinkUnknown", cur_token_len)) {
+    out_int (0x133421f8);
+    local_next_token ();
+    if (store_constructor_contacts_foreign_link_unknown (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "contacts.foreignLinkRequested", cur_token_len)) {
+    out_int (0xa7801f47);
+    local_next_token ();
+    if (store_constructor_contacts_foreign_link_requested (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "contacts.foreignLinkMutual", cur_token_len)) {
+    out_int (0x1bea8ce1);
+    local_next_token ();
+    if (store_constructor_contacts_foreign_link_mutual (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_contacts_foreign_link (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 27 && !memcmp (cur_token, "contacts.foreignLinkUnknown", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_contacts_foreign_link_unknown (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "contacts.foreignLinkRequested", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_contacts_foreign_link_requested (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "contacts.foreignLinkMutual", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_contacts_foreign_link_mutual (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_contacts_foreign_link (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x133421f8: res = fetch_constructor_contacts_foreign_link_unknown (T); break;
+  case 0xa7801f47: res = fetch_constructor_contacts_foreign_link_requested (T); break;
+  case 0x1bea8ce1: res = fetch_constructor_contacts_foreign_link_mutual (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_contacts_foreign_link (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_contacts_foreign_link_unknown (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_contacts_foreign_link_unknown (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_contacts_foreign_link_requested (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_contacts_foreign_link_requested (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_contacts_foreign_link_mutual (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_contacts_foreign_link_mutual (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_contacts_foreign_link (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_foreign_link); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 27 && !memcmp (cur_token, "contacts.foreignLinkUnknown", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_foreign_link_unknown (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "contacts.foreignLinkRequested", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_foreign_link_requested (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "contacts.foreignLinkMutual", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_foreign_link_mutual (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_contacts_foreign_link (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_foreign_link); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 27 && !memcmp (cur_token, "contacts.foreignLinkUnknown", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_foreign_link_unknown (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "contacts.foreignLinkRequested", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_foreign_link_requested (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "contacts.foreignLinkMutual", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_foreign_link_mutual (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_contacts_foreign_link (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "contacts.foreignLinkUnknown", text_len)) { *R = tstrdup ("contacts.foreignLinkUnknown"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "contacts.foreignLinkRequested", text_len)) { *R = tstrdup ("contacts.foreignLinkRequested"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "contacts.foreignLinkMutual", text_len)) { *R = tstrdup ("contacts.foreignLinkMutual"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_contacts_found (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x0566000e: return skip_constructor_contacts_found (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_contacts_found (struct paramed_type *T) {
+  if (skip_constructor_contacts_found (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_contacts_found (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "contacts.found", cur_token_len)) {
+    out_int (0x0566000e);
+    local_next_token ();
+    if (store_constructor_contacts_found (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_contacts_found (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "contacts.found", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_contacts_found (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_contacts_found (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x0566000e: res = fetch_constructor_contacts_found (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_contacts_found (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_contacts_found (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_contacts_found (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_found); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "contacts.found", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_found (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_contacts_found (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_found); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "contacts.found", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_found (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_contacts_found (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "contacts.found", text_len)) { *R = tstrdup ("contacts.found"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_contacts_imported_contacts (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xad524315: return skip_constructor_contacts_imported_contacts (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_contacts_imported_contacts (struct paramed_type *T) {
+  if (skip_constructor_contacts_imported_contacts (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_contacts_imported_contacts (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 25 && !memcmp (cur_token, "contacts.importedContacts", cur_token_len)) {
+    out_int (0xad524315);
+    local_next_token ();
+    if (store_constructor_contacts_imported_contacts (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_contacts_imported_contacts (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 25 && !memcmp (cur_token, "contacts.importedContacts", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_contacts_imported_contacts (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_contacts_imported_contacts (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xad524315: res = fetch_constructor_contacts_imported_contacts (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_contacts_imported_contacts (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_contacts_imported_contacts (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_contacts_imported_contacts (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_imported_contacts); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 25 && !memcmp (cur_token, "contacts.importedContacts", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_imported_contacts (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_contacts_imported_contacts (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_imported_contacts); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 25 && !memcmp (cur_token, "contacts.importedContacts", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_imported_contacts (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_contacts_imported_contacts (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "contacts.importedContacts", text_len)) { *R = tstrdup ("contacts.importedContacts"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_contacts_link (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xeccea3f5: return skip_constructor_contacts_link (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_contacts_link (struct paramed_type *T) {
+  if (skip_constructor_contacts_link (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_contacts_link (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "contacts.link", cur_token_len)) {
+    out_int (0xeccea3f5);
+    local_next_token ();
+    if (store_constructor_contacts_link (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_contacts_link (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "contacts.link", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_contacts_link (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_contacts_link (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xeccea3f5: res = fetch_constructor_contacts_link (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_contacts_link (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_contacts_link (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_contacts_link (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_link); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "contacts.link", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_link (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_contacts_link (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_link); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "contacts.link", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_link (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_contacts_link (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "contacts.link", text_len)) { *R = tstrdup ("contacts.link"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_contacts_my_link (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xd22a1c60: return skip_constructor_contacts_my_link_empty (T);
+  case 0x6c69efee: return skip_constructor_contacts_my_link_requested (T);
+  case 0xc240ebd9: return skip_constructor_contacts_my_link_contact (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_contacts_my_link (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_contacts_my_link_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_contacts_my_link_requested (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_contacts_my_link_contact (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_contacts_my_link (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 20 && !memcmp (cur_token, "contacts.myLinkEmpty", cur_token_len)) {
+    out_int (0xd22a1c60);
+    local_next_token ();
+    if (store_constructor_contacts_my_link_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "contacts.myLinkRequested", cur_token_len)) {
+    out_int (0x6c69efee);
+    local_next_token ();
+    if (store_constructor_contacts_my_link_requested (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "contacts.myLinkContact", cur_token_len)) {
+    out_int (0xc240ebd9);
+    local_next_token ();
+    if (store_constructor_contacts_my_link_contact (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_contacts_my_link (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 20 && !memcmp (cur_token, "contacts.myLinkEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_contacts_my_link_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "contacts.myLinkRequested", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_contacts_my_link_requested (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "contacts.myLinkContact", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_contacts_my_link_contact (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_contacts_my_link (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xd22a1c60: res = fetch_constructor_contacts_my_link_empty (T); break;
+  case 0x6c69efee: res = fetch_constructor_contacts_my_link_requested (T); break;
+  case 0xc240ebd9: res = fetch_constructor_contacts_my_link_contact (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_contacts_my_link (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_contacts_my_link_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_contacts_my_link_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_contacts_my_link_requested (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_contacts_my_link_requested (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_contacts_my_link_contact (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_contacts_my_link_contact (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_contacts_my_link (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_my_link); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 20 && !memcmp (cur_token, "contacts.myLinkEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_my_link_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "contacts.myLinkRequested", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_my_link_requested (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "contacts.myLinkContact", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_my_link_contact (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_contacts_my_link (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_my_link); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 20 && !memcmp (cur_token, "contacts.myLinkEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_my_link_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "contacts.myLinkRequested", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_my_link_requested (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "contacts.myLinkContact", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_my_link_contact (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_contacts_my_link (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "contacts.myLinkEmpty", text_len)) { *R = tstrdup ("contacts.myLinkEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "contacts.myLinkRequested", text_len)) { *R = tstrdup ("contacts.myLinkRequested"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "contacts.myLinkContact", text_len)) { *R = tstrdup ("contacts.myLinkContact"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_contacts_suggested (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x5649dcc5: return skip_constructor_contacts_suggested (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_contacts_suggested (struct paramed_type *T) {
+  if (skip_constructor_contacts_suggested (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_contacts_suggested (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "contacts.suggested", cur_token_len)) {
+    out_int (0x5649dcc5);
+    local_next_token ();
+    if (store_constructor_contacts_suggested (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_contacts_suggested (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "contacts.suggested", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_contacts_suggested (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_contacts_suggested (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x5649dcc5: res = fetch_constructor_contacts_suggested (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_contacts_suggested (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_contacts_suggested (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_contacts_suggested (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_suggested); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "contacts.suggested", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_suggested (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_contacts_suggested (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_contacts_suggested); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 18 && !memcmp (cur_token, "contacts.suggested", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_contacts_suggested (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_contacts_suggested (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "contacts.suggested", text_len)) { *R = tstrdup ("contacts.suggested"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_geochats_located (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x48feb267: return skip_constructor_geochats_located (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_geochats_located (struct paramed_type *T) {
+  if (skip_constructor_geochats_located (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_geochats_located (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 16 && !memcmp (cur_token, "geochats.located", cur_token_len)) {
+    out_int (0x48feb267);
+    local_next_token ();
+    if (store_constructor_geochats_located (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_geochats_located (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 16 && !memcmp (cur_token, "geochats.located", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_geochats_located (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_geochats_located (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x48feb267: res = fetch_constructor_geochats_located (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_geochats_located (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_geochats_located (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_geochats_located (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_geochats_located); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 16 && !memcmp (cur_token, "geochats.located", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_geochats_located (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_geochats_located (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_geochats_located); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 16 && !memcmp (cur_token, "geochats.located", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_geochats_located (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_geochats_located (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "geochats.located", text_len)) { *R = tstrdup ("geochats.located"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_geochats_messages (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xd1526db1: return skip_constructor_geochats_messages (T);
+  case 0xbc5863e8: return skip_constructor_geochats_messages_slice (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_geochats_messages (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_geochats_messages (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_geochats_messages_slice (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_geochats_messages (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "geochats.messages", cur_token_len)) {
+    out_int (0xd1526db1);
+    local_next_token ();
+    if (store_constructor_geochats_messages (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "geochats.messagesSlice", cur_token_len)) {
+    out_int (0xbc5863e8);
+    local_next_token ();
+    if (store_constructor_geochats_messages_slice (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_geochats_messages (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "geochats.messages", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_geochats_messages (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "geochats.messagesSlice", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_geochats_messages_slice (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_geochats_messages (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xd1526db1: res = fetch_constructor_geochats_messages (T); break;
+  case 0xbc5863e8: res = fetch_constructor_geochats_messages_slice (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_geochats_messages (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_geochats_messages (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_geochats_messages (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_geochats_messages_slice (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_geochats_messages_slice (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_geochats_messages (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_geochats_messages); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "geochats.messages", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_geochats_messages (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "geochats.messagesSlice", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_geochats_messages_slice (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_geochats_messages (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_geochats_messages); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "geochats.messages", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_geochats_messages (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "geochats.messagesSlice", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_geochats_messages_slice (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_geochats_messages (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "geochats.messages", text_len)) { *R = tstrdup ("geochats.messages"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "geochats.messagesSlice", text_len)) { *R = tstrdup ("geochats.messagesSlice"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_geochats_stated_message (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x17b1578b: return skip_constructor_geochats_stated_message (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_geochats_stated_message (struct paramed_type *T) {
+  if (skip_constructor_geochats_stated_message (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_geochats_stated_message (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 22 && !memcmp (cur_token, "geochats.statedMessage", cur_token_len)) {
+    out_int (0x17b1578b);
+    local_next_token ();
+    if (store_constructor_geochats_stated_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_geochats_stated_message (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 22 && !memcmp (cur_token, "geochats.statedMessage", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_geochats_stated_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_geochats_stated_message (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x17b1578b: res = fetch_constructor_geochats_stated_message (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_geochats_stated_message (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_geochats_stated_message (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_geochats_stated_message (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_geochats_stated_message); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 22 && !memcmp (cur_token, "geochats.statedMessage", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_geochats_stated_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_geochats_stated_message (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_geochats_stated_message); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 22 && !memcmp (cur_token, "geochats.statedMessage", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_geochats_stated_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_geochats_stated_message (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "geochats.statedMessage", text_len)) { *R = tstrdup ("geochats.statedMessage"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_help_app_update (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x8987f311: return skip_constructor_help_app_update (T);
+  case 0xc45a6536: return skip_constructor_help_no_app_update (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_help_app_update (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_help_app_update (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_help_no_app_update (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_help_app_update (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "help.appUpdate", cur_token_len)) {
+    out_int (0x8987f311);
+    local_next_token ();
+    if (store_constructor_help_app_update (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "help.noAppUpdate", cur_token_len)) {
+    out_int (0xc45a6536);
+    local_next_token ();
+    if (store_constructor_help_no_app_update (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_help_app_update (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "help.appUpdate", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_help_app_update (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "help.noAppUpdate", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_help_no_app_update (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_help_app_update (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x8987f311: res = fetch_constructor_help_app_update (T); break;
+  case 0xc45a6536: res = fetch_constructor_help_no_app_update (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_help_app_update (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_help_app_update (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_help_app_update (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_help_no_app_update (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_help_no_app_update (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_help_app_update (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_help_app_update); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "help.appUpdate", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_help_app_update (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "help.noAppUpdate", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_help_no_app_update (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_help_app_update (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_help_app_update); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "help.appUpdate", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_help_app_update (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "help.noAppUpdate", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_help_no_app_update (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_help_app_update (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "help.appUpdate", text_len)) { *R = tstrdup ("help.appUpdate"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "help.noAppUpdate", text_len)) { *R = tstrdup ("help.noAppUpdate"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_help_invite_text (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x18cb9f78: return skip_constructor_help_invite_text (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_help_invite_text (struct paramed_type *T) {
+  if (skip_constructor_help_invite_text (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_help_invite_text (struct paramed_type *T) {
+    out_int (0x18cb9f78);
+  if (store_constructor_help_invite_text (T) < 0) { return -1; }
+  return 0;
+}
+int store_type_bare_help_invite_text (struct paramed_type *T) {
+  if (store_constructor_help_invite_text (T) < 0) { return -1; }
+  return 0;
+}
+int fetch_type_help_invite_text (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x18cb9f78: res = fetch_constructor_help_invite_text (T); break;
+  default: return -1;
+  }
+  return res;
+}
+int fetch_type_bare_help_invite_text (struct paramed_type *T) {
+  if (fetch_constructor_help_invite_text (T) >= 0) { return 0; }
+  return -1;
+}
+int autocomplete_type_help_invite_text (struct paramed_type *T) {
+  if (autocomplete_constructor_help_invite_text (T) < 0) { return -1; }
+  return 0;
+}
+int autocomplete_type_bare_help_invite_text (struct paramed_type *T) {
+  if (autocomplete_constructor_help_invite_text (T) < 0) { return -1; }
+  return 0;
+}
+int do_autocomplete_type_help_invite_text (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "help.inviteText", text_len)) { *R = tstrdup ("help.inviteText"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_help_support (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x17c6b5f6: return skip_constructor_help_support (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_help_support (struct paramed_type *T) {
+  if (skip_constructor_help_support (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_help_support (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 12 && !memcmp (cur_token, "help.support", cur_token_len)) {
+    out_int (0x17c6b5f6);
+    local_next_token ();
+    if (store_constructor_help_support (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_help_support (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 12 && !memcmp (cur_token, "help.support", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_help_support (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_help_support (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x17c6b5f6: res = fetch_constructor_help_support (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_help_support (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_help_support (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_help_support (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_help_support); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 12 && !memcmp (cur_token, "help.support", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_help_support (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_help_support (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_help_support); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 12 && !memcmp (cur_token, "help.support", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_help_support (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_help_support (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "help.support", text_len)) { *R = tstrdup ("help.support"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_messages_affected_history (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xb7de36f2: return skip_constructor_messages_affected_history (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_messages_affected_history (struct paramed_type *T) {
+  if (skip_constructor_messages_affected_history (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_messages_affected_history (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 24 && !memcmp (cur_token, "messages.affectedHistory", cur_token_len)) {
+    out_int (0xb7de36f2);
+    local_next_token ();
+    if (store_constructor_messages_affected_history (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_messages_affected_history (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 24 && !memcmp (cur_token, "messages.affectedHistory", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_messages_affected_history (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_messages_affected_history (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xb7de36f2: res = fetch_constructor_messages_affected_history (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_messages_affected_history (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_messages_affected_history (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_messages_affected_history (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_affected_history); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 24 && !memcmp (cur_token, "messages.affectedHistory", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_affected_history (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_messages_affected_history (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_affected_history); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 24 && !memcmp (cur_token, "messages.affectedHistory", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_affected_history (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_messages_affected_history (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "messages.affectedHistory", text_len)) { *R = tstrdup ("messages.affectedHistory"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_messages_all_stickers (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xe86602c3: return skip_constructor_messages_all_stickers_not_modified (T);
+  case 0xdcef3102: return skip_constructor_messages_all_stickers (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_messages_all_stickers (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_messages_all_stickers_not_modified (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_messages_all_stickers (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_messages_all_stickers (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 31 && !memcmp (cur_token, "messages.allStickersNotModified", cur_token_len)) {
+    out_int (0xe86602c3);
+    local_next_token ();
+    if (store_constructor_messages_all_stickers_not_modified (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "messages.allStickers", cur_token_len)) {
+    out_int (0xdcef3102);
+    local_next_token ();
+    if (store_constructor_messages_all_stickers (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_messages_all_stickers (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 31 && !memcmp (cur_token, "messages.allStickersNotModified", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_messages_all_stickers_not_modified (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "messages.allStickers", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_messages_all_stickers (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_messages_all_stickers (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xe86602c3: res = fetch_constructor_messages_all_stickers_not_modified (T); break;
+  case 0xdcef3102: res = fetch_constructor_messages_all_stickers (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_messages_all_stickers (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_messages_all_stickers_not_modified (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_all_stickers_not_modified (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_messages_all_stickers (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_all_stickers (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_messages_all_stickers (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_all_stickers); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 31 && !memcmp (cur_token, "messages.allStickersNotModified", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_all_stickers_not_modified (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "messages.allStickers", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_all_stickers (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_messages_all_stickers (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_all_stickers); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 31 && !memcmp (cur_token, "messages.allStickersNotModified", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_all_stickers_not_modified (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "messages.allStickers", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_all_stickers (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_messages_all_stickers (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "messages.allStickersNotModified", text_len)) { *R = tstrdup ("messages.allStickersNotModified"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "messages.allStickers", text_len)) { *R = tstrdup ("messages.allStickers"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_messages_chat (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x40e9002a: return skip_constructor_messages_chat (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_messages_chat (struct paramed_type *T) {
+  if (skip_constructor_messages_chat (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_messages_chat (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "messages.chat", cur_token_len)) {
+    out_int (0x40e9002a);
+    local_next_token ();
+    if (store_constructor_messages_chat (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_messages_chat (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "messages.chat", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_messages_chat (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_messages_chat (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x40e9002a: res = fetch_constructor_messages_chat (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_messages_chat (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_messages_chat (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_messages_chat (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_chat); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "messages.chat", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_chat (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_messages_chat (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_chat); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "messages.chat", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_chat (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_messages_chat (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "messages.chat", text_len)) { *R = tstrdup ("messages.chat"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_messages_chat_full (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xe5d7d19c: return skip_constructor_messages_chat_full (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_messages_chat_full (struct paramed_type *T) {
+  if (skip_constructor_messages_chat_full (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_messages_chat_full (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messages.chatFull", cur_token_len)) {
+    out_int (0xe5d7d19c);
+    local_next_token ();
+    if (store_constructor_messages_chat_full (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_messages_chat_full (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messages.chatFull", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_messages_chat_full (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_messages_chat_full (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xe5d7d19c: res = fetch_constructor_messages_chat_full (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_messages_chat_full (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_messages_chat_full (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_messages_chat_full (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_chat_full); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messages.chatFull", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_chat_full (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_messages_chat_full (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_chat_full); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messages.chatFull", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_chat_full (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_messages_chat_full (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "messages.chatFull", text_len)) { *R = tstrdup ("messages.chatFull"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_messages_chats (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x8150cbd8: return skip_constructor_messages_chats (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_messages_chats (struct paramed_type *T) {
+  if (skip_constructor_messages_chats (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_messages_chats (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "messages.chats", cur_token_len)) {
+    out_int (0x8150cbd8);
+    local_next_token ();
+    if (store_constructor_messages_chats (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_messages_chats (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "messages.chats", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_messages_chats (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_messages_chats (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x8150cbd8: res = fetch_constructor_messages_chats (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_messages_chats (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_messages_chats (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_messages_chats (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_chats); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "messages.chats", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_chats (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_messages_chats (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_chats); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 14 && !memcmp (cur_token, "messages.chats", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_chats (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_messages_chats (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "messages.chats", text_len)) { *R = tstrdup ("messages.chats"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_messages_dh_config (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xc0e24635: return skip_constructor_messages_dh_config_not_modified (T);
+  case 0x2c221edd: return skip_constructor_messages_dh_config (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_messages_dh_config (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_messages_dh_config_not_modified (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_messages_dh_config (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_messages_dh_config (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 28 && !memcmp (cur_token, "messages.dhConfigNotModified", cur_token_len)) {
+    out_int (0xc0e24635);
+    local_next_token ();
+    if (store_constructor_messages_dh_config_not_modified (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messages.dhConfig", cur_token_len)) {
+    out_int (0x2c221edd);
+    local_next_token ();
+    if (store_constructor_messages_dh_config (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_messages_dh_config (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 28 && !memcmp (cur_token, "messages.dhConfigNotModified", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_messages_dh_config_not_modified (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messages.dhConfig", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_messages_dh_config (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_messages_dh_config (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xc0e24635: res = fetch_constructor_messages_dh_config_not_modified (T); break;
+  case 0x2c221edd: res = fetch_constructor_messages_dh_config (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_messages_dh_config (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_messages_dh_config_not_modified (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_dh_config_not_modified (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_messages_dh_config (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_dh_config (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_messages_dh_config (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_dh_config); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 28 && !memcmp (cur_token, "messages.dhConfigNotModified", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_dh_config_not_modified (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messages.dhConfig", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_dh_config (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_messages_dh_config (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_dh_config); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 28 && !memcmp (cur_token, "messages.dhConfigNotModified", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_dh_config_not_modified (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messages.dhConfig", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_dh_config (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_messages_dh_config (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "messages.dhConfigNotModified", text_len)) { *R = tstrdup ("messages.dhConfigNotModified"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "messages.dhConfig", text_len)) { *R = tstrdup ("messages.dhConfig"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_messages_dialogs (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x15ba6c40: return skip_constructor_messages_dialogs (T);
+  case 0x71e094f3: return skip_constructor_messages_dialogs_slice (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_messages_dialogs (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_messages_dialogs (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_messages_dialogs_slice (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_messages_dialogs (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 16 && !memcmp (cur_token, "messages.dialogs", cur_token_len)) {
+    out_int (0x15ba6c40);
+    local_next_token ();
+    if (store_constructor_messages_dialogs (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "messages.dialogsSlice", cur_token_len)) {
+    out_int (0x71e094f3);
+    local_next_token ();
+    if (store_constructor_messages_dialogs_slice (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_messages_dialogs (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 16 && !memcmp (cur_token, "messages.dialogs", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_messages_dialogs (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "messages.dialogsSlice", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_messages_dialogs_slice (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_messages_dialogs (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x15ba6c40: res = fetch_constructor_messages_dialogs (T); break;
+  case 0x71e094f3: res = fetch_constructor_messages_dialogs_slice (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_messages_dialogs (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_messages_dialogs (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_dialogs (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_messages_dialogs_slice (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_dialogs_slice (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_messages_dialogs (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_dialogs); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 16 && !memcmp (cur_token, "messages.dialogs", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_dialogs (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "messages.dialogsSlice", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_dialogs_slice (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_messages_dialogs (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_dialogs); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 16 && !memcmp (cur_token, "messages.dialogs", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_dialogs (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "messages.dialogsSlice", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_dialogs_slice (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_messages_dialogs (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "messages.dialogs", text_len)) { *R = tstrdup ("messages.dialogs"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "messages.dialogsSlice", text_len)) { *R = tstrdup ("messages.dialogsSlice"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_messages_message (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x3f4e0648: return skip_constructor_messages_message_empty (T);
+  case 0xff90c417: return skip_constructor_messages_message (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_messages_message (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_messages_message_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_messages_message (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_messages_message (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 21 && !memcmp (cur_token, "messages.messageEmpty", cur_token_len)) {
+    out_int (0x3f4e0648);
+    local_next_token ();
+    if (store_constructor_messages_message_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "messages.message", cur_token_len)) {
+    out_int (0xff90c417);
+    local_next_token ();
+    if (store_constructor_messages_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_messages_message (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 21 && !memcmp (cur_token, "messages.messageEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_messages_message_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "messages.message", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_messages_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_messages_message (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x3f4e0648: res = fetch_constructor_messages_message_empty (T); break;
+  case 0xff90c417: res = fetch_constructor_messages_message (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_messages_message (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_messages_message_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_message_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_messages_message (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_message (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_messages_message (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_message); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 21 && !memcmp (cur_token, "messages.messageEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_message_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "messages.message", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_messages_message (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_message); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 21 && !memcmp (cur_token, "messages.messageEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_message_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "messages.message", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_messages_message (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "messages.messageEmpty", text_len)) { *R = tstrdup ("messages.messageEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "messages.message", text_len)) { *R = tstrdup ("messages.message"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_messages_messages (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x8c718e87: return skip_constructor_messages_messages (T);
+  case 0x0b446ae3: return skip_constructor_messages_messages_slice (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_messages_messages (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_messages_messages (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_messages_messages_slice (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_messages_messages (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messages.messages", cur_token_len)) {
+    out_int (0x8c718e87);
+    local_next_token ();
+    if (store_constructor_messages_messages (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "messages.messagesSlice", cur_token_len)) {
+    out_int (0x0b446ae3);
+    local_next_token ();
+    if (store_constructor_messages_messages_slice (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_messages_messages (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messages.messages", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_messages_messages (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "messages.messagesSlice", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_messages_messages_slice (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_messages_messages (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x8c718e87: res = fetch_constructor_messages_messages (T); break;
+  case 0x0b446ae3: res = fetch_constructor_messages_messages_slice (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_messages_messages (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_messages_messages (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_messages (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_messages_messages_slice (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_messages_slice (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_messages_messages (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_messages); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messages.messages", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_messages (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "messages.messagesSlice", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_messages_slice (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_messages_messages (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_messages); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messages.messages", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_messages (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "messages.messagesSlice", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_messages_slice (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_messages_messages (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "messages.messages", text_len)) { *R = tstrdup ("messages.messages"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "messages.messagesSlice", text_len)) { *R = tstrdup ("messages.messagesSlice"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_messages_sent_encrypted_message (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x560f8935: return skip_constructor_messages_sent_encrypted_message (T);
+  case 0x9493ff32: return skip_constructor_messages_sent_encrypted_file (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_messages_sent_encrypted_message (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_messages_sent_encrypted_message (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_messages_sent_encrypted_file (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_messages_sent_encrypted_message (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 29 && !memcmp (cur_token, "messages.sentEncryptedMessage", cur_token_len)) {
+    out_int (0x560f8935);
+    local_next_token ();
+    if (store_constructor_messages_sent_encrypted_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "messages.sentEncryptedFile", cur_token_len)) {
+    out_int (0x9493ff32);
+    local_next_token ();
+    if (store_constructor_messages_sent_encrypted_file (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_messages_sent_encrypted_message (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 29 && !memcmp (cur_token, "messages.sentEncryptedMessage", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_messages_sent_encrypted_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "messages.sentEncryptedFile", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_messages_sent_encrypted_file (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_messages_sent_encrypted_message (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x560f8935: res = fetch_constructor_messages_sent_encrypted_message (T); break;
+  case 0x9493ff32: res = fetch_constructor_messages_sent_encrypted_file (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_messages_sent_encrypted_message (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_messages_sent_encrypted_message (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_sent_encrypted_message (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_messages_sent_encrypted_file (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_sent_encrypted_file (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_messages_sent_encrypted_message (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_sent_encrypted_message); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 29 && !memcmp (cur_token, "messages.sentEncryptedMessage", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_sent_encrypted_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "messages.sentEncryptedFile", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_sent_encrypted_file (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_messages_sent_encrypted_message (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_sent_encrypted_message); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 29 && !memcmp (cur_token, "messages.sentEncryptedMessage", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_sent_encrypted_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "messages.sentEncryptedFile", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_sent_encrypted_file (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_messages_sent_encrypted_message (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "messages.sentEncryptedMessage", text_len)) { *R = tstrdup ("messages.sentEncryptedMessage"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "messages.sentEncryptedFile", text_len)) { *R = tstrdup ("messages.sentEncryptedFile"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_messages_sent_message (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xd1f4d35c: return skip_constructor_messages_sent_message (T);
+  case 0xe9db4a3f: return skip_constructor_messages_sent_message_link (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_messages_sent_message (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_messages_sent_message (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_messages_sent_message_link (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_messages_sent_message (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 20 && !memcmp (cur_token, "messages.sentMessage", cur_token_len)) {
+    out_int (0xd1f4d35c);
+    local_next_token ();
+    if (store_constructor_messages_sent_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "messages.sentMessageLink", cur_token_len)) {
+    out_int (0xe9db4a3f);
+    local_next_token ();
+    if (store_constructor_messages_sent_message_link (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_messages_sent_message (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 20 && !memcmp (cur_token, "messages.sentMessage", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_messages_sent_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "messages.sentMessageLink", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_messages_sent_message_link (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_messages_sent_message (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xd1f4d35c: res = fetch_constructor_messages_sent_message (T); break;
+  case 0xe9db4a3f: res = fetch_constructor_messages_sent_message_link (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_messages_sent_message (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_messages_sent_message (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_sent_message (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_messages_sent_message_link (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_sent_message_link (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_messages_sent_message (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_sent_message); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 20 && !memcmp (cur_token, "messages.sentMessage", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_sent_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "messages.sentMessageLink", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_sent_message_link (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_messages_sent_message (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_sent_message); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 20 && !memcmp (cur_token, "messages.sentMessage", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_sent_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "messages.sentMessageLink", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_sent_message_link (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_messages_sent_message (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "messages.sentMessage", text_len)) { *R = tstrdup ("messages.sentMessage"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "messages.sentMessageLink", text_len)) { *R = tstrdup ("messages.sentMessageLink"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_messages_stated_message (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xd07ae726: return skip_constructor_messages_stated_message (T);
+  case 0xa9af2881: return skip_constructor_messages_stated_message_link (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_messages_stated_message (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_messages_stated_message (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_messages_stated_message_link (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_messages_stated_message (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 22 && !memcmp (cur_token, "messages.statedMessage", cur_token_len)) {
+    out_int (0xd07ae726);
+    local_next_token ();
+    if (store_constructor_messages_stated_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "messages.statedMessageLink", cur_token_len)) {
+    out_int (0xa9af2881);
+    local_next_token ();
+    if (store_constructor_messages_stated_message_link (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_messages_stated_message (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 22 && !memcmp (cur_token, "messages.statedMessage", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_messages_stated_message (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "messages.statedMessageLink", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_messages_stated_message_link (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_messages_stated_message (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xd07ae726: res = fetch_constructor_messages_stated_message (T); break;
+  case 0xa9af2881: res = fetch_constructor_messages_stated_message_link (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_messages_stated_message (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_messages_stated_message (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_stated_message (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_messages_stated_message_link (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_stated_message_link (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_messages_stated_message (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_stated_message); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 22 && !memcmp (cur_token, "messages.statedMessage", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_stated_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "messages.statedMessageLink", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_stated_message_link (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_messages_stated_message (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_stated_message); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 22 && !memcmp (cur_token, "messages.statedMessage", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_stated_message (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "messages.statedMessageLink", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_stated_message_link (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_messages_stated_message (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "messages.statedMessage", text_len)) { *R = tstrdup ("messages.statedMessage"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "messages.statedMessageLink", text_len)) { *R = tstrdup ("messages.statedMessageLink"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_messages_stated_messages (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x969478bb: return skip_constructor_messages_stated_messages (T);
+  case 0x3e74f5c6: return skip_constructor_messages_stated_messages_links (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_messages_stated_messages (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_messages_stated_messages (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_messages_stated_messages_links (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_messages_stated_messages (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "messages.statedMessages", cur_token_len)) {
+    out_int (0x969478bb);
+    local_next_token ();
+    if (store_constructor_messages_stated_messages (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "messages.statedMessagesLinks", cur_token_len)) {
+    out_int (0x3e74f5c6);
+    local_next_token ();
+    if (store_constructor_messages_stated_messages_links (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_messages_stated_messages (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "messages.statedMessages", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_messages_stated_messages (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "messages.statedMessagesLinks", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_messages_stated_messages_links (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_messages_stated_messages (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x969478bb: res = fetch_constructor_messages_stated_messages (T); break;
+  case 0x3e74f5c6: res = fetch_constructor_messages_stated_messages_links (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_messages_stated_messages (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_messages_stated_messages (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_stated_messages (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_messages_stated_messages_links (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_stated_messages_links (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_messages_stated_messages (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_stated_messages); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "messages.statedMessages", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_stated_messages (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "messages.statedMessagesLinks", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_stated_messages_links (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_messages_stated_messages (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_stated_messages); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "messages.statedMessages", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_stated_messages (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "messages.statedMessagesLinks", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_stated_messages_links (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_messages_stated_messages (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "messages.statedMessages", text_len)) { *R = tstrdup ("messages.statedMessages"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "messages.statedMessagesLinks", text_len)) { *R = tstrdup ("messages.statedMessagesLinks"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_messages_stickers (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xf1749a22: return skip_constructor_messages_stickers_not_modified (T);
+  case 0x8a8ecd32: return skip_constructor_messages_stickers (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_messages_stickers (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_messages_stickers_not_modified (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_messages_stickers (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_messages_stickers (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 28 && !memcmp (cur_token, "messages.stickersNotModified", cur_token_len)) {
+    out_int (0xf1749a22);
+    local_next_token ();
+    if (store_constructor_messages_stickers_not_modified (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messages.stickers", cur_token_len)) {
+    out_int (0x8a8ecd32);
+    local_next_token ();
+    if (store_constructor_messages_stickers (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_messages_stickers (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 28 && !memcmp (cur_token, "messages.stickersNotModified", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_messages_stickers_not_modified (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messages.stickers", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_messages_stickers (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_messages_stickers (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xf1749a22: res = fetch_constructor_messages_stickers_not_modified (T); break;
+  case 0x8a8ecd32: res = fetch_constructor_messages_stickers (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_messages_stickers (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_messages_stickers_not_modified (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_stickers_not_modified (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_messages_stickers (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_messages_stickers (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_messages_stickers (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_stickers); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 28 && !memcmp (cur_token, "messages.stickersNotModified", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_stickers_not_modified (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messages.stickers", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_stickers (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_messages_stickers (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_messages_stickers); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 28 && !memcmp (cur_token, "messages.stickersNotModified", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_stickers_not_modified (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messages.stickers", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_messages_stickers (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_messages_stickers (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "messages.stickersNotModified", text_len)) { *R = tstrdup ("messages.stickersNotModified"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "messages.stickers", text_len)) { *R = tstrdup ("messages.stickers"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_photos_photo (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x20212ca8: return skip_constructor_photos_photo (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_photos_photo (struct paramed_type *T) {
+  if (skip_constructor_photos_photo (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_photos_photo (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 12 && !memcmp (cur_token, "photos.photo", cur_token_len)) {
+    out_int (0x20212ca8);
+    local_next_token ();
+    if (store_constructor_photos_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_photos_photo (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 12 && !memcmp (cur_token, "photos.photo", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_photos_photo (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_photos_photo (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x20212ca8: res = fetch_constructor_photos_photo (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_photos_photo (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_photos_photo (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_photos_photo (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_photos_photo); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 12 && !memcmp (cur_token, "photos.photo", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_photos_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_photos_photo (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_photos_photo); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 12 && !memcmp (cur_token, "photos.photo", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_photos_photo (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_photos_photo (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "photos.photo", text_len)) { *R = tstrdup ("photos.photo"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_photos_photos (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x8dca6aa5: return skip_constructor_photos_photos (T);
+  case 0x15051f54: return skip_constructor_photos_photos_slice (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_photos_photos (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_photos_photos (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_photos_photos_slice (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_photos_photos (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "photos.photos", cur_token_len)) {
+    out_int (0x8dca6aa5);
+    local_next_token ();
+    if (store_constructor_photos_photos (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "photos.photosSlice", cur_token_len)) {
+    out_int (0x15051f54);
+    local_next_token ();
+    if (store_constructor_photos_photos_slice (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_photos_photos (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "photos.photos", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_photos_photos (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "photos.photosSlice", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_photos_photos_slice (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_photos_photos (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x8dca6aa5: res = fetch_constructor_photos_photos (T); break;
+  case 0x15051f54: res = fetch_constructor_photos_photos_slice (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_photos_photos (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_photos_photos (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_photos_photos (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_photos_photos_slice (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_photos_photos_slice (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_photos_photos (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_photos_photos); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "photos.photos", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_photos_photos (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "photos.photosSlice", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_photos_photos_slice (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_photos_photos (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_photos_photos); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "photos.photos", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_photos_photos (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "photos.photosSlice", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_photos_photos_slice (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_photos_photos (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "photos.photos", text_len)) { *R = tstrdup ("photos.photos"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "photos.photosSlice", text_len)) { *R = tstrdup ("photos.photosSlice"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_storage_file_type (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xaa963b05: return skip_constructor_storage_file_unknown (T);
+  case 0x007efe0e: return skip_constructor_storage_file_jpeg (T);
+  case 0xcae1aadf: return skip_constructor_storage_file_gif (T);
+  case 0x0a4f63c0: return skip_constructor_storage_file_png (T);
+  case 0xae1e508d: return skip_constructor_storage_file_pdf (T);
+  case 0x528a0677: return skip_constructor_storage_file_mp3 (T);
+  case 0x4b09ebbc: return skip_constructor_storage_file_mov (T);
+  case 0x40bc6f52: return skip_constructor_storage_file_partial (T);
+  case 0xb3cea0e4: return skip_constructor_storage_file_mp4 (T);
+  case 0x1081464c: return skip_constructor_storage_file_webp (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_storage_file_type (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_storage_file_unknown (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_storage_file_jpeg (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_storage_file_gif (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_storage_file_png (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_storage_file_pdf (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_storage_file_mp3 (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_storage_file_mov (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_storage_file_partial (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_storage_file_mp4 (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_storage_file_webp (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_storage_file_type (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 19 && !memcmp (cur_token, "storage.fileUnknown", cur_token_len)) {
+    out_int (0xaa963b05);
+    local_next_token ();
+    if (store_constructor_storage_file_unknown (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "storage.fileJpeg", cur_token_len)) {
+    out_int (0x007efe0e);
+    local_next_token ();
+    if (store_constructor_storage_file_jpeg (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileGif", cur_token_len)) {
+    out_int (0xcae1aadf);
+    local_next_token ();
+    if (store_constructor_storage_file_gif (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "storage.filePng", cur_token_len)) {
+    out_int (0x0a4f63c0);
+    local_next_token ();
+    if (store_constructor_storage_file_png (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "storage.filePdf", cur_token_len)) {
+    out_int (0xae1e508d);
+    local_next_token ();
+    if (store_constructor_storage_file_pdf (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileMp3", cur_token_len)) {
+    out_int (0x528a0677);
+    local_next_token ();
+    if (store_constructor_storage_file_mp3 (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileMov", cur_token_len)) {
+    out_int (0x4b09ebbc);
+    local_next_token ();
+    if (store_constructor_storage_file_mov (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "storage.filePartial", cur_token_len)) {
+    out_int (0x40bc6f52);
+    local_next_token ();
+    if (store_constructor_storage_file_partial (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileMp4", cur_token_len)) {
+    out_int (0xb3cea0e4);
+    local_next_token ();
+    if (store_constructor_storage_file_mp4 (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "storage.fileWebp", cur_token_len)) {
+    out_int (0x1081464c);
+    local_next_token ();
+    if (store_constructor_storage_file_webp (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_storage_file_type (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 19 && !memcmp (cur_token, "storage.fileUnknown", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_storage_file_unknown (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "storage.fileJpeg", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_storage_file_jpeg (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileGif", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_storage_file_gif (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "storage.filePng", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_storage_file_png (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "storage.filePdf", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_storage_file_pdf (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileMp3", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_storage_file_mp3 (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileMov", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_storage_file_mov (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "storage.filePartial", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_storage_file_partial (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileMp4", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_storage_file_mp4 (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "storage.fileWebp", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_storage_file_webp (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_storage_file_type (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xaa963b05: res = fetch_constructor_storage_file_unknown (T); break;
+  case 0x007efe0e: res = fetch_constructor_storage_file_jpeg (T); break;
+  case 0xcae1aadf: res = fetch_constructor_storage_file_gif (T); break;
+  case 0x0a4f63c0: res = fetch_constructor_storage_file_png (T); break;
+  case 0xae1e508d: res = fetch_constructor_storage_file_pdf (T); break;
+  case 0x528a0677: res = fetch_constructor_storage_file_mp3 (T); break;
+  case 0x4b09ebbc: res = fetch_constructor_storage_file_mov (T); break;
+  case 0x40bc6f52: res = fetch_constructor_storage_file_partial (T); break;
+  case 0xb3cea0e4: res = fetch_constructor_storage_file_mp4 (T); break;
+  case 0x1081464c: res = fetch_constructor_storage_file_webp (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_storage_file_type (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_storage_file_unknown (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_storage_file_unknown (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_storage_file_jpeg (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_storage_file_jpeg (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_storage_file_gif (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_storage_file_gif (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_storage_file_png (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_storage_file_png (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_storage_file_pdf (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_storage_file_pdf (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_storage_file_mp3 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_storage_file_mp3 (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_storage_file_mov (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_storage_file_mov (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_storage_file_partial (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_storage_file_partial (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_storage_file_mp4 (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_storage_file_mp4 (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_storage_file_webp (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_storage_file_webp (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_storage_file_type (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_storage_file_type); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 19 && !memcmp (cur_token, "storage.fileUnknown", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_storage_file_unknown (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "storage.fileJpeg", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_storage_file_jpeg (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileGif", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_storage_file_gif (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "storage.filePng", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_storage_file_png (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "storage.filePdf", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_storage_file_pdf (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileMp3", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_storage_file_mp3 (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileMov", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_storage_file_mov (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "storage.filePartial", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_storage_file_partial (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileMp4", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_storage_file_mp4 (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "storage.fileWebp", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_storage_file_webp (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_storage_file_type (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_storage_file_type); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 19 && !memcmp (cur_token, "storage.fileUnknown", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_storage_file_unknown (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "storage.fileJpeg", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_storage_file_jpeg (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileGif", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_storage_file_gif (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "storage.filePng", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_storage_file_png (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "storage.filePdf", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_storage_file_pdf (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileMp3", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_storage_file_mp3 (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileMov", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_storage_file_mov (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "storage.filePartial", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_storage_file_partial (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "storage.fileMp4", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_storage_file_mp4 (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "storage.fileWebp", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_storage_file_webp (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_storage_file_type (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "storage.fileUnknown", text_len)) { *R = tstrdup ("storage.fileUnknown"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "storage.fileJpeg", text_len)) { *R = tstrdup ("storage.fileJpeg"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "storage.fileGif", text_len)) { *R = tstrdup ("storage.fileGif"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "storage.filePng", text_len)) { *R = tstrdup ("storage.filePng"); return index; } else { index ++; }}
+  if (index == 4) { if (!strncmp (text, "storage.filePdf", text_len)) { *R = tstrdup ("storage.filePdf"); return index; } else { index ++; }}
+  if (index == 5) { if (!strncmp (text, "storage.fileMp3", text_len)) { *R = tstrdup ("storage.fileMp3"); return index; } else { index ++; }}
+  if (index == 6) { if (!strncmp (text, "storage.fileMov", text_len)) { *R = tstrdup ("storage.fileMov"); return index; } else { index ++; }}
+  if (index == 7) { if (!strncmp (text, "storage.filePartial", text_len)) { *R = tstrdup ("storage.filePartial"); return index; } else { index ++; }}
+  if (index == 8) { if (!strncmp (text, "storage.fileMp4", text_len)) { *R = tstrdup ("storage.fileMp4"); return index; } else { index ++; }}
+  if (index == 9) { if (!strncmp (text, "storage.fileWebp", text_len)) { *R = tstrdup ("storage.fileWebp"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_updates_difference (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x5d75a138: return skip_constructor_updates_difference_empty (T);
+  case 0x00f49ca0: return skip_constructor_updates_difference (T);
+  case 0xa8fb1981: return skip_constructor_updates_difference_slice (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_updates_difference (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (skip_constructor_updates_difference_empty (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_updates_difference (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_updates_difference_slice (T) >= 0) { return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int store_type_updates_difference (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "updates.differenceEmpty", cur_token_len)) {
+    out_int (0x5d75a138);
+    local_next_token ();
+    if (store_constructor_updates_difference_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "updates.difference", cur_token_len)) {
+    out_int (0x00f49ca0);
+    local_next_token ();
+    if (store_constructor_updates_difference (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "updates.differenceSlice", cur_token_len)) {
+    out_int (0xa8fb1981);
+    local_next_token ();
+    if (store_constructor_updates_difference_slice (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_updates_difference (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "updates.differenceEmpty", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_updates_difference_empty (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "updates.difference", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_updates_difference (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "updates.differenceSlice", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_updates_difference_slice (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_updates_difference (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x5d75a138: res = fetch_constructor_updates_difference_empty (T); break;
+  case 0x00f49ca0: res = fetch_constructor_updates_difference (T); break;
+  case 0xa8fb1981: res = fetch_constructor_updates_difference_slice (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_updates_difference (struct paramed_type *T) {
+  int *save_in_ptr = in_ptr;
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  if (skip_constructor_updates_difference_empty (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_updates_difference_empty (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_updates_difference (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_updates_difference (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  if (skip_constructor_updates_difference_slice (T) >= 0) { in_ptr = save_in_ptr; eprintf (" ("); assert (!fetch_constructor_updates_difference_slice (T)); if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  in_ptr = save_in_ptr;
+  return -1;
+}
+int autocomplete_type_updates_difference (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_updates_difference); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "updates.differenceEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_updates_difference_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "updates.difference", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_updates_difference (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "updates.differenceSlice", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_updates_difference_slice (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_updates_difference (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_updates_difference); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 23 && !memcmp (cur_token, "updates.differenceEmpty", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_updates_difference_empty (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "updates.difference", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_updates_difference (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "updates.differenceSlice", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_updates_difference_slice (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_updates_difference (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "updates.differenceEmpty", text_len)) { *R = tstrdup ("updates.differenceEmpty"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "updates.difference", text_len)) { *R = tstrdup ("updates.difference"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "updates.differenceSlice", text_len)) { *R = tstrdup ("updates.differenceSlice"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_updates_state (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0xa56c2a3e: return skip_constructor_updates_state (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_updates_state (struct paramed_type *T) {
+  if (skip_constructor_updates_state (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_updates_state (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "updates.state", cur_token_len)) {
+    out_int (0xa56c2a3e);
+    local_next_token ();
+    if (store_constructor_updates_state (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_updates_state (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "updates.state", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_updates_state (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_updates_state (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0xa56c2a3e: res = fetch_constructor_updates_state (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_updates_state (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_updates_state (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_updates_state (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_updates_state); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "updates.state", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_updates_state (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_updates_state (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_updates_state); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 13 && !memcmp (cur_token, "updates.state", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_updates_state (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_updates_state (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "updates.state", text_len)) { *R = tstrdup ("updates.state"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+int skip_type_upload_file (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  int magic = fetch_int ();
+  switch (magic) {
+  case 0x096a18d5: return skip_constructor_upload_file (T);
+  default: return -1;
+  }
+}
+int skip_type_bare_upload_file (struct paramed_type *T) {
+  if (skip_constructor_upload_file (T) >= 0) { return 0; }
+  return -1;
+}
+int store_type_upload_file (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 11 && !memcmp (cur_token, "upload.file", cur_token_len)) {
+    out_int (0x096a18d5);
+    local_next_token ();
+    if (store_constructor_upload_file (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int store_type_bare_upload_file (struct paramed_type *T) {
+  expect_token ("(", 1);
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 11 && !memcmp (cur_token, "upload.file", cur_token_len)) {
+    local_next_token ();
+    if (store_constructor_upload_file (T) < 0) { return -1; }
+    expect_token (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int fetch_type_upload_file (struct paramed_type *T) {
+  if (in_remaining () < 4) { return -1;}
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  int magic = fetch_int ();
+  int res = -1;
+  switch (magic) {
+  case 0x096a18d5: res = fetch_constructor_upload_file (T); break;
+  default: return -1;
+  }
+  if (res >= 0) {
+    if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); }
+    eprintf (" )");
+  }
+  return res;
+}
+int fetch_type_bare_upload_file (struct paramed_type *T) {
+  if (multiline_output >= 2) { multiline_offset += multiline_offset_size; }
+  eprintf (" (");
+  if (fetch_constructor_upload_file (T) >= 0) { if (multiline_output >= 2) { multiline_offset -= multiline_offset_size; print_offset (); } eprintf (" )");return 0; }
+  return -1;
+}
+int autocomplete_type_upload_file (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_upload_file); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 11 && !memcmp (cur_token, "upload.file", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_upload_file (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int autocomplete_type_bare_upload_file (struct paramed_type *T) {
+  expect_token_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_type_upload_file); return -1; }
+  if (cur_token_len < 0) { return -1; }
+  if (cur_token_len == 11 && !memcmp (cur_token, "upload.file", cur_token_len)) {
+    local_next_token ();
+    if (autocomplete_constructor_upload_file (T) < 0) { return -1; }
+    expect_token_autocomplete (")", 1);
+    return 0;
+  }
+  return -1;
+}
+int do_autocomplete_type_upload_file (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "upload.file", text_len)) { *R = tstrdup ("upload.file"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+struct paramed_type *store_function_account_change_phone (void) {
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "phone_code", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_account_change_phone (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_real_len)) {
+    set_autocomplete_string ("phone_number");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "phone_number", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_real_len)) {
+    set_autocomplete_string ("phone_code_hash");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "phone_code_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "phone_code", cur_token_real_len)) {
+    set_autocomplete_string ("phone_code");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "phone_code", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_account_check_username (void) {
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_account_check_username (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_real_len)) {
+    set_autocomplete_string ("username");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "username", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_account_delete_account (void) {
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "reason", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_account_delete_account (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "reason", cur_token_real_len)) {
+    set_autocomplete_string ("reason");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "reason", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_account_get_account_t_t_l (void) {
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xb8d0afdf, .id = "AccountDaysTTL", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_account_get_account_t_t_l (void) {
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xb8d0afdf, .id = "AccountDaysTTL", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_account_get_notify_settings (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x02b6911b, .id = "InputNotifyPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_notify_peer (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_account_get_notify_settings (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x02b6911b, .id = "InputNotifyPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_notify_peer (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xfdf894fc, .id = "PeerNotifySettings", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_account_get_password (void) {
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x24eeb8db, .id = "account.Password", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_account_get_password (void) {
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x24eeb8db, .id = "account.Password", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_account_get_privacy (void) {
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4f96cb18, .id = "InputPrivacyKey", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_privacy_key (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x554abb6f, .id = "account.PrivacyRules", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_account_get_privacy (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) {
+    set_autocomplete_string ("key");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4f96cb18, .id = "InputPrivacyKey", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_privacy_key (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x554abb6f, .id = "account.PrivacyRules", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_account_get_wall_papers (void) {
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xafa14973, .id = "WallPaper", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_account_get_wall_papers (void) {
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xafa14973, .id = "WallPaper", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_account_register_device (void) {
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "token_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "token", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "device_model", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "system_version", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field4) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "app_version", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field5) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "app_sandbox", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bool (field6) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "lang_code", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field7) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_account_register_device (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "token_type", cur_token_real_len)) {
+    set_autocomplete_string ("token_type");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "token_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "token", cur_token_real_len)) {
+    set_autocomplete_string ("token");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "token", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "device_model", cur_token_real_len)) {
+    set_autocomplete_string ("device_model");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "device_model", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "system_version", cur_token_real_len)) {
+    set_autocomplete_string ("system_version");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "system_version", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field4) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "app_version", cur_token_real_len)) {
+    set_autocomplete_string ("app_version");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "app_version", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field5) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "app_sandbox", cur_token_real_len)) {
+    set_autocomplete_string ("app_sandbox");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "app_sandbox", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bool (field6) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "lang_code", cur_token_real_len)) {
+    set_autocomplete_string ("lang_code");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "lang_code", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field7) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_account_reset_notify_settings (void) {
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_account_reset_notify_settings (void) {
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_account_send_change_phone_code (void) {
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xa4f58c4c, .id = "account.SentChangePhoneCode", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_account_send_change_phone_code (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_real_len)) {
+    set_autocomplete_string ("phone_number");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "phone_number", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xa4f58c4c, .id = "account.SentChangePhoneCode", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_account_set_account_t_t_l (void) {
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "ttl", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xb8d0afdf, .id = "AccountDaysTTL", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_account_days_t_t_l (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_account_set_account_t_t_l (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "ttl", cur_token_real_len)) {
+    set_autocomplete_string ("ttl");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "ttl", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xb8d0afdf, .id = "AccountDaysTTL", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_account_days_t_t_l (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_account_set_password (void) {
+  if (cur_token_len >= 0 && cur_token_len == 21 && !cur_token_quoted && !memcmp (cur_token, "current_password_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "new_salt", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 17 && !cur_token_quoted && !memcmp (cur_token, "new_password_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field3) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "hint", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field4) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_account_set_password (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 21 && !cur_token_quoted && !memcmp (cur_token, "current_password_hash", cur_token_real_len)) {
+    set_autocomplete_string ("current_password_hash");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 21 && !memcmp (cur_token, "current_password_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "new_salt", cur_token_real_len)) {
+    set_autocomplete_string ("new_salt");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "new_salt", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 17 && !cur_token_quoted && !memcmp (cur_token, "new_password_hash", cur_token_real_len)) {
+    set_autocomplete_string ("new_password_hash");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 17 && !memcmp (cur_token, "new_password_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field3) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "hint", cur_token_real_len)) {
+    set_autocomplete_string ("hint");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "hint", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field4) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_account_set_privacy (void) {
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4f96cb18, .id = "InputPrivacyKey", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_privacy_key (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "rules", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x4b815163, .id = "InputPrivacyRule", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x554abb6f, .id = "account.PrivacyRules", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_account_set_privacy (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) {
+    set_autocomplete_string ("key");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4f96cb18, .id = "InputPrivacyKey", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_privacy_key (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "rules", cur_token_real_len)) {
+    set_autocomplete_string ("rules");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "rules", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x4b815163, .id = "InputPrivacyRule", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x554abb6f, .id = "account.PrivacyRules", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_account_unregister_device (void) {
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "token_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "token", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_account_unregister_device (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "token_type", cur_token_real_len)) {
+    set_autocomplete_string ("token_type");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "token_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "token", cur_token_real_len)) {
+    set_autocomplete_string ("token");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "token", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_account_update_notify_settings (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x02b6911b, .id = "InputNotifyPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_notify_peer (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "settings", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x46a2ce98, .id = "InputPeerNotifySettings", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_peer_notify_settings (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_account_update_notify_settings (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x02b6911b, .id = "InputNotifyPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_notify_peer (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "settings", cur_token_real_len)) {
+    set_autocomplete_string ("settings");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "settings", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x46a2ce98, .id = "InputPeerNotifySettings", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_peer_notify_settings (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_account_update_profile (void) {
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_account_update_profile (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_real_len)) {
+    set_autocomplete_string ("first_name");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_real_len)) {
+    set_autocomplete_string ("last_name");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_account_update_status (void) {
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "offline", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bool (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_account_update_status (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "offline", cur_token_real_len)) {
+    set_autocomplete_string ("offline");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "offline", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bool (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_account_update_username (void) {
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_account_update_username (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_real_len)) {
+    set_autocomplete_string ("username");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "username", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_auth_bind_temp_auth_key (void) {
+  if (cur_token_len >= 0 && cur_token_len == 16 && !cur_token_quoted && !memcmp (cur_token, "perm_auth_key_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "expires_at", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 17 && !cur_token_quoted && !memcmp (cur_token, "encrypted_message", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field4) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_auth_bind_temp_auth_key (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 16 && !cur_token_quoted && !memcmp (cur_token, "perm_auth_key_id", cur_token_real_len)) {
+    set_autocomplete_string ("perm_auth_key_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 16 && !memcmp (cur_token, "perm_auth_key_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) {
+    set_autocomplete_string ("nonce");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "expires_at", cur_token_real_len)) {
+    set_autocomplete_string ("expires_at");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "expires_at", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 17 && !cur_token_quoted && !memcmp (cur_token, "encrypted_message", cur_token_real_len)) {
+    set_autocomplete_string ("encrypted_message");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 17 && !memcmp (cur_token, "encrypted_message", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field4) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_auth_check_password (void) {
+  if (cur_token_len >= 0 && cur_token_len == 13 && !cur_token_quoted && !memcmp (cur_token, "password_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf6b673a4, .id = "auth.Authorization", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_auth_check_password (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 13 && !cur_token_quoted && !memcmp (cur_token, "password_hash", cur_token_real_len)) {
+    set_autocomplete_string ("password_hash");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 13 && !memcmp (cur_token, "password_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf6b673a4, .id = "auth.Authorization", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_auth_check_phone (void) {
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe300cc3b, .id = "auth.CheckedPhone", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_auth_check_phone (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_real_len)) {
+    set_autocomplete_string ("phone_number");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "phone_number", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe300cc3b, .id = "auth.CheckedPhone", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_auth_export_authorization (void) {
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xdf969c2d, .id = "auth.ExportedAuthorization", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_auth_export_authorization (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "dc_id", cur_token_real_len)) {
+    set_autocomplete_string ("dc_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "dc_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xdf969c2d, .id = "auth.ExportedAuthorization", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_auth_import_authorization (void) {
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf6b673a4, .id = "auth.Authorization", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_auth_import_authorization (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_real_len)) {
+    set_autocomplete_string ("bytes");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "bytes", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf6b673a4, .id = "auth.Authorization", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_auth_log_out (void) {
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_auth_log_out (void) {
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_auth_reset_authorizations (void) {
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_auth_reset_authorizations (void) {
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_auth_send_call (void) {
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_auth_send_call (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_real_len)) {
+    set_autocomplete_string ("phone_number");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "phone_number", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_real_len)) {
+    set_autocomplete_string ("phone_code_hash");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "phone_code_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_auth_send_code (void) {
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "sms_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "api_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "api_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field4) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "lang_code", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field5) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0cc8bc16, .id = "auth.SentCode", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_auth_send_code (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_real_len)) {
+    set_autocomplete_string ("phone_number");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "phone_number", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "sms_type", cur_token_real_len)) {
+    set_autocomplete_string ("sms_type");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "sms_type", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "api_id", cur_token_real_len)) {
+    set_autocomplete_string ("api_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "api_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "api_hash", cur_token_real_len)) {
+    set_autocomplete_string ("api_hash");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "api_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field4) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "lang_code", cur_token_real_len)) {
+    set_autocomplete_string ("lang_code");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "lang_code", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field5) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0cc8bc16, .id = "auth.SentCode", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_auth_send_invites (void) {
+  if (cur_token_len >= 0 && cur_token_len == 13 && !cur_token_quoted && !memcmp (cur_token, "phone_numbers", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_auth_send_invites (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 13 && !cur_token_quoted && !memcmp (cur_token, "phone_numbers", cur_token_real_len)) {
+    set_autocomplete_string ("phone_numbers");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 13 && !memcmp (cur_token, "phone_numbers", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) {
+    set_autocomplete_string ("message");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_auth_send_sms (void) {
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_auth_send_sms (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_real_len)) {
+    set_autocomplete_string ("phone_number");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "phone_number", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_real_len)) {
+    set_autocomplete_string ("phone_code_hash");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "phone_code_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_auth_sign_in (void) {
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "phone_code", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf6b673a4, .id = "auth.Authorization", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_auth_sign_in (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_real_len)) {
+    set_autocomplete_string ("phone_number");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "phone_number", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_real_len)) {
+    set_autocomplete_string ("phone_code_hash");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "phone_code_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "phone_code", cur_token_real_len)) {
+    set_autocomplete_string ("phone_code");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "phone_code", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf6b673a4, .id = "auth.Authorization", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_auth_sign_up (void) {
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "phone_code", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field4) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field5) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf6b673a4, .id = "auth.Authorization", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_auth_sign_up (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "phone_number", cur_token_real_len)) {
+    set_autocomplete_string ("phone_number");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "phone_number", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "phone_code_hash", cur_token_real_len)) {
+    set_autocomplete_string ("phone_code_hash");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "phone_code_hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "phone_code", cur_token_real_len)) {
+    set_autocomplete_string ("phone_code");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "phone_code", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 10 && !cur_token_quoted && !memcmp (cur_token, "first_name", cur_token_real_len)) {
+    set_autocomplete_string ("first_name");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 10 && !memcmp (cur_token, "first_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field4) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "last_name", cur_token_real_len)) {
+    set_autocomplete_string ("last_name");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "last_name", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field5) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf6b673a4, .id = "auth.Authorization", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_contacts_block (void) {
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_user (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_contacts_block (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_user (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_contacts_delete_contact (void) {
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_user (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xeccea3f5, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_contacts_delete_contact (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_user (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xeccea3f5, .id = "contacts.Link", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_contacts_delete_contacts (void) {
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_contacts_delete_contacts (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_contacts_export_card (void) {
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_contacts_export_card (void) {
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_contacts_get_blocked (void) {
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x8c1b8fb4, .id = "contacts.Blocked", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_contacts_get_blocked (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_real_len)) {
+    set_autocomplete_string ("offset");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "offset", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_real_len)) {
+    set_autocomplete_string ("limit");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "limit", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x8c1b8fb4, .id = "contacts.Blocked", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_contacts_get_contacts (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xd8c02560, .id = "contacts.Contacts", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_contacts_get_contacts (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_real_len)) {
+    set_autocomplete_string ("hash");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xd8c02560, .id = "contacts.Contacts", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_contacts_get_statuses (void) {
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xd3680c61, .id = "ContactStatus", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_contacts_get_statuses (void) {
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xd3680c61, .id = "ContactStatus", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_contacts_get_suggested (void) {
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x5649dcc5, .id = "contacts.Suggested", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_contacts_get_suggested (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_real_len)) {
+    set_autocomplete_string ("limit");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "limit", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x5649dcc5, .id = "contacts.Suggested", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_contacts_import_card (void) {
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "export_card", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_contacts_import_card (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "export_card", cur_token_real_len)) {
+    set_autocomplete_string ("export_card");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "export_card", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_contacts_import_contacts (void) {
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "contacts", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xf392b7f4, .id = "InputContact", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "replace", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bool (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xad524315, .id = "contacts.ImportedContacts", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_contacts_import_contacts (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "contacts", cur_token_real_len)) {
+    set_autocomplete_string ("contacts");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "contacts", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xf392b7f4, .id = "InputContact", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "replace", cur_token_real_len)) {
+    set_autocomplete_string ("replace");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "replace", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bool (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xad524315, .id = "contacts.ImportedContacts", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_contacts_resolve_username (void) {
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_contacts_resolve_username (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "username", cur_token_real_len)) {
+    set_autocomplete_string ("username");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "username", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_contacts_search (void) {
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "q", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0566000e, .id = "contacts.Found", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_contacts_search (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "q", cur_token_real_len)) {
+    set_autocomplete_string ("q");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "q", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_real_len)) {
+    set_autocomplete_string ("limit");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "limit", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0566000e, .id = "contacts.Found", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_contacts_unblock (void) {
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_user (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_contacts_unblock (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_user (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_decrypted_message_media_audio_l12 (void) {
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field3) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "iv", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field4) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe21b7dd5, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_decrypted_message_media_audio_l12 (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_real_len)) {
+    set_autocomplete_string ("duration");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "duration", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_real_len)) {
+    set_autocomplete_string ("size");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "size", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) {
+    set_autocomplete_string ("key");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field3) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "iv", cur_token_real_len)) {
+    set_autocomplete_string ("iv");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "iv", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field4) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe21b7dd5, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_decrypted_message_media_video_l12 (void) {
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_w", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_h", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field6) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field7) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field8) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "iv", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field9) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe21b7dd5, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_decrypted_message_media_video_l12 (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "thumb", cur_token_real_len)) {
+    set_autocomplete_string ("thumb");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "thumb", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_w", cur_token_real_len)) {
+    set_autocomplete_string ("thumb_w");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "thumb_w", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "thumb_h", cur_token_real_len)) {
+    set_autocomplete_string ("thumb_h");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "thumb_h", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "duration", cur_token_real_len)) {
+    set_autocomplete_string ("duration");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "duration", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "w", cur_token_real_len)) {
+    set_autocomplete_string ("w");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "w", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "h", cur_token_real_len)) {
+    set_autocomplete_string ("h");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "h", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field6) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "size", cur_token_real_len)) {
+    set_autocomplete_string ("size");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "size", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field7) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "key", cur_token_real_len)) {
+    set_autocomplete_string ("key");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "key", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field8) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "iv", cur_token_real_len)) {
+    set_autocomplete_string ("iv");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "iv", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field9 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field9) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe21b7dd5, .id = "DecryptedMessageMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_geochats_checkin (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_geo_chat (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x17b1578b, .id = "geochats.StatedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_geochats_checkin (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_geo_chat (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x17b1578b, .id = "geochats.StatedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_geochats_create_geo_chat (void) {
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "geo_point", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_geo_point (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "address", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "venue", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field4) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x17b1578b, .id = "geochats.StatedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_geochats_create_geo_chat (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) {
+    set_autocomplete_string ("title");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "geo_point", cur_token_real_len)) {
+    set_autocomplete_string ("geo_point");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "geo_point", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_geo_point (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "address", cur_token_real_len)) {
+    set_autocomplete_string ("address");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "address", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "venue", cur_token_real_len)) {
+    set_autocomplete_string ("venue");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "venue", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field4) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x17b1578b, .id = "geochats.StatedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_geochats_edit_chat_photo (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_geo_chat (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x3a60776d, .id = "InputChatPhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_chat_photo (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x17b1578b, .id = "geochats.StatedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_geochats_edit_chat_photo (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_geo_chat (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) {
+    set_autocomplete_string ("photo");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x3a60776d, .id = "InputChatPhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_chat_photo (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x17b1578b, .id = "geochats.StatedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_geochats_edit_chat_title (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_geo_chat (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "address", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x17b1578b, .id = "geochats.StatedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_geochats_edit_chat_title (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_geo_chat (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) {
+    set_autocomplete_string ("title");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "address", cur_token_real_len)) {
+    set_autocomplete_string ("address");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "address", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x17b1578b, .id = "geochats.StatedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_geochats_get_full_chat (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_geo_chat (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe5d7d19c, .id = "messages.ChatFull", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_geochats_get_full_chat (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_geo_chat (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe5d7d19c, .id = "messages.ChatFull", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_geochats_get_history (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_geo_chat (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x6d0a0e59, .id = "geochats.Messages", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_geochats_get_history (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_geo_chat (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_real_len)) {
+    set_autocomplete_string ("offset");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "offset", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_real_len)) {
+    set_autocomplete_string ("max_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "max_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_real_len)) {
+    set_autocomplete_string ("limit");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "limit", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x6d0a0e59, .id = "geochats.Messages", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_geochats_get_located (void) {
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "geo_point", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_geo_point (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "radius", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x48feb267, .id = "geochats.Located", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_geochats_get_located (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "geo_point", cur_token_real_len)) {
+    set_autocomplete_string ("geo_point");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "geo_point", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_geo_point (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "radius", cur_token_real_len)) {
+    set_autocomplete_string ("radius");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "radius", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_real_len)) {
+    set_autocomplete_string ("limit");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "limit", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x48feb267, .id = "geochats.Located", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_geochats_get_recents (void) {
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x6d0a0e59, .id = "geochats.Messages", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_geochats_get_recents (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_real_len)) {
+    set_autocomplete_string ("offset");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "offset", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_real_len)) {
+    set_autocomplete_string ("limit");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "limit", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x6d0a0e59, .id = "geochats.Messages", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_geochats_search (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_geo_chat (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "q", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "filter", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x59d7295b, .id = "MessagesFilter", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_messages_filter (field3) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "min_date", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "max_date", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field6) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field7) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field8) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x6d0a0e59, .id = "geochats.Messages", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_geochats_search (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_geo_chat (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "q", cur_token_real_len)) {
+    set_autocomplete_string ("q");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "q", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "filter", cur_token_real_len)) {
+    set_autocomplete_string ("filter");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "filter", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x59d7295b, .id = "MessagesFilter", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_messages_filter (field3) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "min_date", cur_token_real_len)) {
+    set_autocomplete_string ("min_date");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "min_date", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "max_date", cur_token_real_len)) {
+    set_autocomplete_string ("max_date");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "max_date", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_real_len)) {
+    set_autocomplete_string ("offset");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "offset", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field6) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_real_len)) {
+    set_autocomplete_string ("max_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "max_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field7) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_real_len)) {
+    set_autocomplete_string ("limit");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "limit", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field8) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x6d0a0e59, .id = "geochats.Messages", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_geochats_send_media (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_geo_chat (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x3670cf17, .id = "InputMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_media (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x17b1578b, .id = "geochats.StatedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_geochats_send_media (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_geo_chat (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_real_len)) {
+    set_autocomplete_string ("media");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "media", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x3670cf17, .id = "InputMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_media (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) {
+    set_autocomplete_string ("random_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x17b1578b, .id = "geochats.StatedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_geochats_send_message (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_geo_chat (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x17b1578b, .id = "geochats.StatedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_geochats_send_message (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_geo_chat (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) {
+    set_autocomplete_string ("message");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) {
+    set_autocomplete_string ("random_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x17b1578b, .id = "geochats.StatedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_geochats_set_typing (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_geo_chat (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "typing", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bool (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_geochats_set_typing (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x74d456fa, .id = "InputGeoChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_geo_chat (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "typing", cur_token_real_len)) {
+    set_autocomplete_string ("typing");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "typing", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bool (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_help_get_app_update (void) {
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "device_model", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "system_version", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "app_version", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "lang_code", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field4) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ddd9627, .id = "help.AppUpdate", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_help_get_app_update (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "device_model", cur_token_real_len)) {
+    set_autocomplete_string ("device_model");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "device_model", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "system_version", cur_token_real_len)) {
+    set_autocomplete_string ("system_version");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "system_version", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "app_version", cur_token_real_len)) {
+    set_autocomplete_string ("app_version");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "app_version", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "lang_code", cur_token_real_len)) {
+    set_autocomplete_string ("lang_code");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "lang_code", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field4) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ddd9627, .id = "help.AppUpdate", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_help_get_config (void) {
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x2e54dd74, .id = "Config", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_help_get_config (void) {
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x2e54dd74, .id = "Config", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_help_get_invite_text (void) {
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "lang_code", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x18cb9f78, .id = "help.InviteText", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_help_get_invite_text (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "lang_code", cur_token_real_len)) {
+    set_autocomplete_string ("lang_code");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "lang_code", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x18cb9f78, .id = "help.InviteText", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_help_get_nearest_dc (void) {
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x8e1a1775, .id = "NearestDc", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_help_get_nearest_dc (void) {
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x8e1a1775, .id = "NearestDc", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_help_get_support (void) {
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x17c6b5f6, .id = "help.Support", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_help_get_support (void) {
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x17c6b5f6, .id = "help.Support", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_help_save_app_log (void) {
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "events", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x770656a8, .id = "InputAppEvent", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_help_save_app_log (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "events", cur_token_real_len)) {
+    set_autocomplete_string ("events");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "events", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x770656a8, .id = "InputAppEvent", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_init_connection (void) {
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "api_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "device_model", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "system_version", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field4) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 11 && !cur_token_quoted && !memcmp (cur_token, "app_version", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field5) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "lang_code", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field6) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "query", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field7 = store_function_any ();
+  if (!field7) { return 0; }
+  if (ODDP(field7)) { return 0; }
+  struct paramed_type *var0 = field7; assert (var0);
+  struct paramed_type *R =
+  var0;
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_init_connection (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "api_id", cur_token_real_len)) {
+    set_autocomplete_string ("api_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "api_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "device_model", cur_token_real_len)) {
+    set_autocomplete_string ("device_model");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "device_model", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "system_version", cur_token_real_len)) {
+    set_autocomplete_string ("system_version");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "system_version", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field4) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 11 && !cur_token_quoted && !memcmp (cur_token, "app_version", cur_token_real_len)) {
+    set_autocomplete_string ("app_version");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 11 && !memcmp (cur_token, "app_version", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field5) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "lang_code", cur_token_real_len)) {
+    set_autocomplete_string ("lang_code");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "lang_code", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field6) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "query", cur_token_real_len)) {
+    set_autocomplete_string ("query");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "query", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 = autocomplete_function_any ();
+  if (!field7) { return 0; }
+  add_var_to_be_freed (field7);
+  if (ODDP(field7)) { return 0; }
+  struct paramed_type *var0 = field7; assert (var0);
+  struct paramed_type *R =
+  var0;
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_invoke_after_msg (void) {
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "msg_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "query", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 = store_function_any ();
+  if (!field3) { return 0; }
+  if (ODDP(field3)) { return 0; }
+  struct paramed_type *var0 = field3; assert (var0);
+  struct paramed_type *R =
+  var0;
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_invoke_after_msg (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "msg_id", cur_token_real_len)) {
+    set_autocomplete_string ("msg_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "msg_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "query", cur_token_real_len)) {
+    set_autocomplete_string ("query");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "query", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 = autocomplete_function_any ();
+  if (!field3) { return 0; }
+  add_var_to_be_freed (field3);
+  if (ODDP(field3)) { return 0; }
+  struct paramed_type *var0 = field3; assert (var0);
+  struct paramed_type *R =
+  var0;
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_invoke_after_msgs (void) {
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "msg_ids", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "query", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 = store_function_any ();
+  if (!field3) { return 0; }
+  if (ODDP(field3)) { return 0; }
+  struct paramed_type *var0 = field3; assert (var0);
+  struct paramed_type *R =
+  var0;
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_invoke_after_msgs (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "msg_ids", cur_token_real_len)) {
+    set_autocomplete_string ("msg_ids");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "msg_ids", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "query", cur_token_real_len)) {
+    set_autocomplete_string ("query");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "query", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 = autocomplete_function_any ();
+  if (!field3) { return 0; }
+  add_var_to_be_freed (field3);
+  if (ODDP(field3)) { return 0; }
+  struct paramed_type *var0 = field3; assert (var0);
+  struct paramed_type *R =
+  var0;
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_invoke_with_layer (void) {
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "layer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "query", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 = store_function_any ();
+  if (!field3) { return 0; }
+  if (ODDP(field3)) { return 0; }
+  struct paramed_type *var0 = field3; assert (var0);
+  struct paramed_type *R =
+  var0;
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_invoke_with_layer (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "layer", cur_token_real_len)) {
+    set_autocomplete_string ("layer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "layer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "query", cur_token_real_len)) {
+    set_autocomplete_string ("query");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "query", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 = autocomplete_function_any ();
+  if (!field3) { return 0; }
+  add_var_to_be_freed (field3);
+  if (ODDP(field3)) { return 0; }
+  struct paramed_type *var0 = field3; assert (var0);
+  struct paramed_type *R =
+  var0;
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_accept_encryption (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf141b5e1, .id = "InputEncryptedChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_encrypted_chat (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "g_b", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xb1718213, .id = "EncryptedChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_accept_encryption (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf141b5e1, .id = "InputEncryptedChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_encrypted_chat (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "g_b", cur_token_real_len)) {
+    set_autocomplete_string ("g_b");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "g_b", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 15 && !cur_token_quoted && !memcmp (cur_token, "key_fingerprint", cur_token_real_len)) {
+    set_autocomplete_string ("key_fingerprint");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 15 && !memcmp (cur_token, "key_fingerprint", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xb1718213, .id = "EncryptedChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_add_chat_user (void) {
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_user (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "fwd_limit", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x79d5cfa7, .id = "messages.StatedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_add_chat_user (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) {
+    set_autocomplete_string ("chat_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_user (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "fwd_limit", cur_token_real_len)) {
+    set_autocomplete_string ("fwd_limit");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "fwd_limit", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x79d5cfa7, .id = "messages.StatedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_create_chat (void) {
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x79d5cfa7, .id = "messages.StatedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_create_chat (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "users", cur_token_real_len)) {
+    set_autocomplete_string ("users");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "users", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) {
+    set_autocomplete_string ("title");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x79d5cfa7, .id = "messages.StatedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_delete_chat_user (void) {
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_user (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x79d5cfa7, .id = "messages.StatedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_delete_chat_user (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) {
+    set_autocomplete_string ("chat_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_user (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x79d5cfa7, .id = "messages.StatedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_delete_history (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_peer (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xb7de36f2, .id = "messages.AffectedHistory", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_delete_history (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_peer (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_real_len)) {
+    set_autocomplete_string ("offset");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "offset", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xb7de36f2, .id = "messages.AffectedHistory", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_delete_messages (void) {
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_delete_messages (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_discard_encryption (void) {
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_discard_encryption (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) {
+    set_autocomplete_string ("chat_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_edit_chat_photo (void) {
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x3a60776d, .id = "InputChatPhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_chat_photo (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x79d5cfa7, .id = "messages.StatedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_edit_chat_photo (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) {
+    set_autocomplete_string ("chat_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "photo", cur_token_real_len)) {
+    set_autocomplete_string ("photo");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "photo", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x3a60776d, .id = "InputChatPhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_chat_photo (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x79d5cfa7, .id = "messages.StatedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_edit_chat_title (void) {
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x79d5cfa7, .id = "messages.StatedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_edit_chat_title (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) {
+    set_autocomplete_string ("chat_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "title", cur_token_real_len)) {
+    set_autocomplete_string ("title");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "title", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x79d5cfa7, .id = "messages.StatedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_forward_message (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_peer (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x79d5cfa7, .id = "messages.StatedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_forward_message (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_peer (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) {
+    set_autocomplete_string ("random_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x79d5cfa7, .id = "messages.StatedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_forward_messages (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_peer (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xa8e08d7d, .id = "messages.StatedMessages", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_forward_messages (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_peer (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xa8e08d7d, .id = "messages.StatedMessages", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_get_all_stickers (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x348933c1, .id = "messages.AllStickers", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_get_all_stickers (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_real_len)) {
+    set_autocomplete_string ("hash");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x348933c1, .id = "messages.AllStickers", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_get_chats (void) {
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x8150cbd8, .id = "messages.Chats", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_get_chats (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x8150cbd8, .id = "messages.Chats", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_get_dh_config (void) {
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 13 && !cur_token_quoted && !memcmp (cur_token, "random_length", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xecc058e8, .id = "messages.DhConfig", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_get_dh_config (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "version", cur_token_real_len)) {
+    set_autocomplete_string ("version");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "version", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 13 && !cur_token_quoted && !memcmp (cur_token, "random_length", cur_token_real_len)) {
+    set_autocomplete_string ("random_length");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 13 && !memcmp (cur_token, "random_length", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xecc058e8, .id = "messages.DhConfig", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_get_dialogs (void) {
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x645af8b3, .id = "messages.Dialogs", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_get_dialogs (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_real_len)) {
+    set_autocomplete_string ("offset");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "offset", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_real_len)) {
+    set_autocomplete_string ("max_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "max_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_real_len)) {
+    set_autocomplete_string ("limit");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "limit", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x645af8b3, .id = "messages.Dialogs", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_get_full_chat (void) {
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe5d7d19c, .id = "messages.ChatFull", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_get_full_chat (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "chat_id", cur_token_real_len)) {
+    set_autocomplete_string ("chat_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "chat_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe5d7d19c, .id = "messages.ChatFull", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_get_history (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_peer (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x8735e464, .id = "messages.Messages", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_get_history (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_peer (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_real_len)) {
+    set_autocomplete_string ("offset");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "offset", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_real_len)) {
+    set_autocomplete_string ("max_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "max_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_real_len)) {
+    set_autocomplete_string ("limit");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "limit", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x8735e464, .id = "messages.Messages", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_get_messages (void) {
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x8735e464, .id = "messages.Messages", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_get_messages (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x8735e464, .id = "messages.Messages", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_get_stickers (void) {
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "emoticon", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7bfa5710, .id = "messages.Stickers", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_get_stickers (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "emoticon", cur_token_real_len)) {
+    set_autocomplete_string ("emoticon");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "emoticon", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "hash", cur_token_real_len)) {
+    set_autocomplete_string ("hash");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "hash", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7bfa5710, .id = "messages.Stickers", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_read_encrypted_history (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf141b5e1, .id = "InputEncryptedChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_encrypted_chat (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "max_date", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_read_encrypted_history (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf141b5e1, .id = "InputEncryptedChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_encrypted_chat (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "max_date", cur_token_real_len)) {
+    set_autocomplete_string ("max_date");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "max_date", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_read_history (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_peer (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 13 && !cur_token_quoted && !memcmp (cur_token, "read_contents", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bool (field4) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xb7de36f2, .id = "messages.AffectedHistory", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_read_history (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_peer (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_real_len)) {
+    set_autocomplete_string ("max_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "max_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_real_len)) {
+    set_autocomplete_string ("offset");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "offset", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 13 && !cur_token_quoted && !memcmp (cur_token, "read_contents", cur_token_real_len)) {
+    set_autocomplete_string ("read_contents");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 13 && !memcmp (cur_token, "read_contents", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bool (field4) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xb7de36f2, .id = "messages.AffectedHistory", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_read_message_contents (void) {
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_read_message_contents (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_received_messages (void) {
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_received_messages (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_real_len)) {
+    set_autocomplete_string ("max_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "max_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_received_queue (void) {
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "max_qts", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_received_queue (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "max_qts", cur_token_real_len)) {
+    set_autocomplete_string ("max_qts");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "max_qts", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_request_encryption (void) {
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_user (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "g_a", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xb1718213, .id = "EncryptedChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_request_encryption (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_user (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) {
+    set_autocomplete_string ("random_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "g_a", cur_token_real_len)) {
+    set_autocomplete_string ("g_a");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "g_a", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xb1718213, .id = "EncryptedChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_restore_messages (void) {
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_restore_messages (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_search (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_peer (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "q", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "filter", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x59d7295b, .id = "MessagesFilter", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_messages_filter (field3) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "min_date", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "max_date", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field5) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field6) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field7) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field8) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x8735e464, .id = "messages.Messages", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_search (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_peer (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "q", cur_token_real_len)) {
+    set_autocomplete_string ("q");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "q", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "filter", cur_token_real_len)) {
+    set_autocomplete_string ("filter");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "filter", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x59d7295b, .id = "MessagesFilter", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_messages_filter (field3) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "min_date", cur_token_real_len)) {
+    set_autocomplete_string ("min_date");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "min_date", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "max_date", cur_token_real_len)) {
+    set_autocomplete_string ("max_date");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "max_date", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field5) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_real_len)) {
+    set_autocomplete_string ("offset");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "offset", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field6) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_real_len)) {
+    set_autocomplete_string ("max_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "max_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field7 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field7) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_real_len)) {
+    set_autocomplete_string ("limit");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "limit", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field8 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field8) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x8735e464, .id = "messages.Messages", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_send_broadcast (void) {
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "contacts", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x3670cf17, .id = "InputMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_media (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xa8e08d7d, .id = "messages.StatedMessages", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_send_broadcast (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "contacts", cur_token_real_len)) {
+    set_autocomplete_string ("contacts");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "contacts", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) {
+    set_autocomplete_string ("message");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_real_len)) {
+    set_autocomplete_string ("media");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "media", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x3670cf17, .id = "InputMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_media (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xa8e08d7d, .id = "messages.StatedMessages", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_send_encrypted (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf141b5e1, .id = "InputEncryptedChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_encrypted_chat (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "data", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xc29c7607, .id = "messages.SentEncryptedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_send_encrypted (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf141b5e1, .id = "InputEncryptedChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_encrypted_chat (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) {
+    set_autocomplete_string ("random_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "data", cur_token_real_len)) {
+    set_autocomplete_string ("data");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "data", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xc29c7607, .id = "messages.SentEncryptedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_send_encrypted_file (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf141b5e1, .id = "InputEncryptedChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_encrypted_chat (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "data", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field3) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0b5c064f, .id = "InputEncryptedFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_encrypted_file (field4) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xc29c7607, .id = "messages.SentEncryptedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_send_encrypted_file (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf141b5e1, .id = "InputEncryptedChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_encrypted_chat (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) {
+    set_autocomplete_string ("random_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "data", cur_token_real_len)) {
+    set_autocomplete_string ("data");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "data", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field3) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_real_len)) {
+    set_autocomplete_string ("file");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "file", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0b5c064f, .id = "InputEncryptedFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_encrypted_file (field4) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xc29c7607, .id = "messages.SentEncryptedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_send_encrypted_service (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf141b5e1, .id = "InputEncryptedChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_encrypted_chat (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "data", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xc29c7607, .id = "messages.SentEncryptedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_send_encrypted_service (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf141b5e1, .id = "InputEncryptedChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_encrypted_chat (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) {
+    set_autocomplete_string ("random_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "data", cur_token_real_len)) {
+    set_autocomplete_string ("data");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "data", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xc29c7607, .id = "messages.SentEncryptedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_send_media (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_peer (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x3670cf17, .id = "InputMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_media (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x79d5cfa7, .id = "messages.StatedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_send_media (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_peer (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "media", cur_token_real_len)) {
+    set_autocomplete_string ("media");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "media", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x3670cf17, .id = "InputMedia", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_media (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) {
+    set_autocomplete_string ("random_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x79d5cfa7, .id = "messages.StatedMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_send_message (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_peer (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x382f9963, .id = "messages.SentMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_send_message (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_peer (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "message", cur_token_real_len)) {
+    set_autocomplete_string ("message");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "message", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "random_id", cur_token_real_len)) {
+    set_autocomplete_string ("random_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "random_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x382f9963, .id = "messages.SentMessage", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_set_encrypted_typing (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf141b5e1, .id = "InputEncryptedChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_encrypted_chat (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "typing", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bool (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_set_encrypted_typing (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf141b5e1, .id = "InputEncryptedChat", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_encrypted_chat (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "typing", cur_token_real_len)) {
+    set_autocomplete_string ("typing");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "typing", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bool (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_messages_set_typing (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_peer (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x88a65ee1, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_send_message_action (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_messages_set_typing (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "peer", cur_token_real_len)) {
+    set_autocomplete_string ("peer");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "peer", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9e67268d, .id = "InputPeer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_peer (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "action", cur_token_real_len)) {
+    set_autocomplete_string ("action");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "action", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x88a65ee1, .id = "SendMessageAction", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_send_message_action (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_photos_delete_photos (void) {
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_photos_delete_photos (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_photos_get_user_photos (void) {
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_user (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field4) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x98cf75f1, .id = "photos.Photos", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_photos_get_user_photos (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "user_id", cur_token_real_len)) {
+    set_autocomplete_string ("user_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "user_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_user (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_real_len)) {
+    set_autocomplete_string ("offset");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "offset", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "max_id", cur_token_real_len)) {
+    set_autocomplete_string ("max_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "max_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_real_len)) {
+    set_autocomplete_string ("limit");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "limit", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field4) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x98cf75f1, .id = "photos.Photos", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_photos_update_profile_photo (void) {
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_photo (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "crop", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_photo_crop (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_photos_update_profile_photo (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe74279c9, .id = "InputPhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_photo (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "crop", cur_token_real_len)) {
+    set_autocomplete_string ("crop");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "crop", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_photo_crop (field2) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x9a486229, .id = "UserProfilePhoto", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_photos_upload_profile_photo (void) {
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_file (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "caption", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "geo_point", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_geo_point (field3) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "crop", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_photo_crop (field4) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x20212ca8, .id = "photos.Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_photos_upload_profile_photo (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "file", cur_token_real_len)) {
+    set_autocomplete_string ("file");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "file", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x0f60f9ca, .id = "InputFile", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_file (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "caption", cur_token_real_len)) {
+    set_autocomplete_string ("caption");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "caption", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "geo_point", cur_token_real_len)) {
+    set_autocomplete_string ("geo_point");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "geo_point", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x17768f1f, .id = "InputGeoPoint", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_geo_point (field3) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "crop", cur_token_real_len)) {
+    set_autocomplete_string ("crop");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "crop", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x7477e321, .id = "InputPhotoCrop", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_photo_crop (field4) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x20212ca8, .id = "photos.Photo", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_req_d_h_params (void) {
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "p", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 1 && !cur_token_quoted && !memcmp (cur_token, "q", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field4) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 22 && !cur_token_quoted && !memcmp (cur_token, "public_key_fingerprint", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field5) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "encrypted_data", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field6) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xa9230301, .id = "Server_DH_Params", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_req_d_h_params (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) {
+    set_autocomplete_string ("nonce");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_real_len)) {
+    set_autocomplete_string ("server_nonce");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "server_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "p", cur_token_real_len)) {
+    set_autocomplete_string ("p");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "p", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 1 && !cur_token_quoted && !memcmp (cur_token, "q", cur_token_real_len)) {
+    set_autocomplete_string ("q");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 1 && !memcmp (cur_token, "q", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field4) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 22 && !cur_token_quoted && !memcmp (cur_token, "public_key_fingerprint", cur_token_real_len)) {
+    set_autocomplete_string ("public_key_fingerprint");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 22 && !memcmp (cur_token, "public_key_fingerprint", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field5 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field5) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "encrypted_data", cur_token_real_len)) {
+    set_autocomplete_string ("encrypted_data");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "encrypted_data", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field6 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field6) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xa9230301, .id = "Server_DH_Params", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_req_pq (void) {
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x05162463, .id = "ResPQ", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_req_pq (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) {
+    set_autocomplete_string ("nonce");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x05162463, .id = "ResPQ", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_set_client_d_h_params (void) {
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int128 (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 14 && !cur_token_quoted && !memcmp (cur_token, "encrypted_data", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_string (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xdb8a468f, .id = "Set_client_DH_params_answer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_set_client_d_h_params (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "nonce", cur_token_real_len)) {
+    set_autocomplete_string ("nonce");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 12 && !cur_token_quoted && !memcmp (cur_token, "server_nonce", cur_token_real_len)) {
+    set_autocomplete_string ("server_nonce");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 12 && !memcmp (cur_token, "server_nonce", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x82c93bc6, .id = "Bare_Int128", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int128 (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 14 && !cur_token_quoted && !memcmp (cur_token, "encrypted_data", cur_token_real_len)) {
+    set_autocomplete_string ("encrypted_data");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 14 && !memcmp (cur_token, "encrypted_data", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x4ad791db, .id = "Bare_String", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_string (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xdb8a468f, .id = "Set_client_DH_params_answer", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_updates_get_difference (void) {
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 3 && !cur_token_quoted && !memcmp (cur_token, "qts", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf57a2419, .id = "updates.Difference", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_updates_get_difference (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "pts", cur_token_real_len)) {
+    set_autocomplete_string ("pts");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "pts", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 4 && !cur_token_quoted && !memcmp (cur_token, "date", cur_token_real_len)) {
+    set_autocomplete_string ("date");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 4 && !memcmp (cur_token, "date", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 3 && !cur_token_quoted && !memcmp (cur_token, "qts", cur_token_real_len)) {
+    set_autocomplete_string ("qts");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 3 && !memcmp (cur_token, "qts", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf57a2419, .id = "updates.Difference", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_updates_get_state (void) {
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_updates_get_state (void) {
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xa56c2a3e, .id = "updates.State", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_upload_get_file (void) {
+  if (cur_token_len >= 0 && cur_token_len == 8 && !cur_token_quoted && !memcmp (cur_token, "location", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe6daa38b, .id = "InputFileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_file_location (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x096a18d5, .id = "upload.File", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_upload_get_file (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 8 && !cur_token_quoted && !memcmp (cur_token, "location", cur_token_real_len)) {
+    set_autocomplete_string ("location");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 8 && !memcmp (cur_token, "location", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xe6daa38b, .id = "InputFileLocation", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_file_location (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 6 && !cur_token_quoted && !memcmp (cur_token, "offset", cur_token_real_len)) {
+    set_autocomplete_string ("offset");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 6 && !memcmp (cur_token, "offset", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "limit", cur_token_real_len)) {
+    set_autocomplete_string ("limit");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "limit", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x096a18d5, .id = "upload.File", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_upload_save_big_file_part (void) {
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "file_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "file_part", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 16 && !cur_token_quoted && !memcmp (cur_token, "file_total_parts", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field3) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field4) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_upload_save_big_file_part (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "file_id", cur_token_real_len)) {
+    set_autocomplete_string ("file_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "file_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "file_part", cur_token_real_len)) {
+    set_autocomplete_string ("file_part");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "file_part", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 16 && !cur_token_quoted && !memcmp (cur_token, "file_total_parts", cur_token_real_len)) {
+    set_autocomplete_string ("file_total_parts");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 16 && !memcmp (cur_token, "file_total_parts", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field3) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_real_len)) {
+    set_autocomplete_string ("bytes");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "bytes", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field4 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field4) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_upload_save_file_part (void) {
+  if (cur_token_len >= 0 && cur_token_len == 7 && !cur_token_quoted && !memcmp (cur_token, "file_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_long (field1) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 9 && !cur_token_quoted && !memcmp (cur_token, "file_part", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len >= 0 && cur_token_len == 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_bare_bytes (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_upload_save_file_part (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 7 && !cur_token_quoted && !memcmp (cur_token, "file_id", cur_token_real_len)) {
+    set_autocomplete_string ("file_id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 7 && !memcmp (cur_token, "file_id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xddf89345, .id = "Bare_Long", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_long (field1) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 9 && !cur_token_quoted && !memcmp (cur_token, "file_part", cur_token_real_len)) {
+    set_autocomplete_string ("file_part");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 9 && !memcmp (cur_token, "file_part", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field2 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x57af6425, .id = "Bare_Int", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_int (field2) < 0) { return 0;}
+  if (cur_token_len == -3 && cur_token_real_len <= 5 && !cur_token_quoted && !memcmp (cur_token, "bytes", cur_token_real_len)) {
+    set_autocomplete_string ("bytes");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 5 && !memcmp (cur_token, "bytes", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field3 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xf11ec860, .id = "Bare_Bytes", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_bare_bytes (field3) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x250be282, .id = "Bool", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_users_get_full_user (void) {
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (store_type_input_user (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x771095da, .id = "UserFull", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_users_get_full_user (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  if (autocomplete_type_input_user (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x771095da, .id = "UserFull", .params_num = 0, .params_types = 0},
+    .params = 0,
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *store_function_users_get_users (void) {
+  if (cur_token_len >= 0 && cur_token_len == 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (store_type_vector (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  return paramed_type_dup (R);
+}
+struct paramed_type *autocomplete_function_users_get_users (void) {
+  if (cur_token_len == -3 && cur_token_real_len <= 2 && !cur_token_quoted && !memcmp (cur_token, "id", cur_token_real_len)) {
+    set_autocomplete_string ("id");
+    return 0;
+  }
+  if (cur_token_len >= 0 && cur_token_len == 2 && !memcmp (cur_token, "id", cur_token_len)) {
+    local_next_token ();
+    expect_token_ptr_autocomplete (":", 1);
+  }
+  struct paramed_type *field1 =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0xadfe0c6a, .id = "InputUser", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  if (autocomplete_type_vector (field1) < 0) { return 0;}
+  struct paramed_type *R =
+  &(struct paramed_type){
+    .type = &(struct tl_type_descr) {.name = 0x1cb5c415, .id = "Vector", .params_num = 1, .params_types = 0},
+    .params = (struct paramed_type *[]){
+      &(struct paramed_type){
+        .type = &(struct tl_type_descr) {.name = 0x9227e4ce, .id = "User", .params_num = 0, .params_types = 0},
+        .params = 0,
+      },
+    }
+  };
+  return paramed_type_dup (R);
+}
+int skip_type_any (struct paramed_type *T) {
+  switch (T->type->name) {
+  case 0xb8d0afdf: return skip_type_account_days_t_t_l (T);
+  case 0x472f5020: return skip_type_bare_account_days_t_t_l (T);
+  case 0x9fc5ec4e: return skip_type_audio (T);
+  case 0x603a13b1: return skip_type_bare_audio (T);
+  case 0x250be282: return skip_type_bool (T);
+  case 0xdaf41d7d: return skip_type_bare_bool (T);
+  case 0x0ee1379f: return skip_type_bytes (T);
+  case 0xf11ec860: return skip_type_bare_bytes (T);
+  case 0x7bd865dc: return skip_type_chat (T);
+  case 0x84279a23: return skip_type_bare_chat (T);
+  case 0x630e61be: return skip_type_chat_full (T);
+  case 0x9cf19e41: return skip_type_bare_chat_full (T);
+  case 0x3631cf4c: return skip_type_chat_located (T);
+  case 0xc9ce30b3: return skip_type_bare_chat_located (T);
+  case 0xc8d7493e: return skip_type_chat_participant (T);
+  case 0x3728b6c1: return skip_type_bare_chat_participant (T);
+  case 0x77930f9f: return skip_type_chat_participants (T);
+  case 0x886cf060: return skip_type_bare_chat_participants (T);
+  case 0x56922676: return skip_type_chat_photo (T);
+  case 0xa96dd989: return skip_type_bare_chat_photo (T);
+  case 0x6643b654: return skip_type_client_d_h_inner_data (T);
+  case 0x99bc49ab: return skip_type_bare_client_d_h_inner_data (T);
+  case 0x2e54dd74: return skip_type_config (T);
+  case 0xd1ab228b: return skip_type_bare_config (T);
+  case 0xf911c994: return skip_type_contact (T);
+  case 0x06ee366b: return skip_type_bare_contact (T);
+  case 0x561bc879: return skip_type_contact_blocked (T);
+  case 0xa9e43786: return skip_type_bare_contact_blocked (T);
+  case 0xea879f95: return skip_type_contact_found (T);
+  case 0x1578606a: return skip_type_bare_contact_found (T);
+  case 0xd3680c61: return skip_type_contact_status (T);
+  case 0x2c97f39e: return skip_type_bare_contact_status (T);
+  case 0x3de191a1: return skip_type_contact_suggested (T);
+  case 0xc21e6e5e: return skip_type_bare_contact_suggested (T);
+  case 0x2ec2a43c: return skip_type_dc_option (T);
+  case 0xd13d5bc3: return skip_type_bare_dc_option (T);
+  case 0xe692047a: return skip_type_decrypted_message (T);
+  case 0x196dfb85: return skip_type_bare_decrypted_message (T);
+  case 0x4e0eefde: return skip_type_decrypted_message_action (T);
+  case 0xb1f11021: return skip_type_bare_decrypted_message_action (T);
+  case 0x1be31789: return skip_type_decrypted_message_layer (T);
+  case 0xe41ce876: return skip_type_bare_decrypted_message_layer (T);
+  case 0xe21b7dd5: return skip_type_decrypted_message_media (T);
+  case 0x1de4822a: return skip_type_bare_decrypted_message_media (T);
+  case 0xab3a99ac: return skip_type_dialog (T);
+  case 0x54c56653: return skip_type_bare_dialog (T);
+  case 0x51a73418: return skip_type_document (T);
+  case 0xae58cbe7: return skip_type_bare_document (T);
+  case 0xcfd59b04: return skip_type_document_attribute (T);
+  case 0x302a64fb: return skip_type_bare_document_attribute (T);
+  case 0x2210c154: return skip_type_double (T);
+  case 0xddef3eab: return skip_type_bare_double (T);
+  case 0xb1718213: return skip_type_encrypted_chat (T);
+  case 0x4e8e7dec: return skip_type_bare_encrypted_chat (T);
+  case 0x886fd032: return skip_type_encrypted_file (T);
+  case 0x77902fcd: return skip_type_bare_encrypted_file (T);
+  case 0xce6b8a1e: return skip_type_encrypted_message (T);
+  case 0x319475e1: return skip_type_bare_encrypted_message (T);
+  case 0xc4b9f9bb: return skip_type_error (T);
+  case 0x3b460644: return skip_type_bare_error (T);
+  case 0x2f8ffb30: return skip_type_file_location (T);
+  case 0xd07004cf: return skip_type_bare_file_location (T);
+  case 0xf67b4034: return skip_type_geo_chat_message (T);
+  case 0x0984bfcb: return skip_type_bare_geo_chat_message (T);
+  case 0x315e0a53: return skip_type_geo_point (T);
+  case 0xcea1f5ac: return skip_type_bare_geo_point (T);
+  case 0xd0028438: return skip_type_imported_contact (T);
+  case 0x2ffd7bc7: return skip_type_bare_imported_contact (T);
+  case 0x770656a8: return skip_type_input_app_event (T);
+  case 0x88f9a957: return skip_type_bare_input_app_event (T);
+  case 0xae8e9c7b: return skip_type_input_audio (T);
+  case 0x51716384: return skip_type_bare_input_audio (T);
+  case 0x3a60776d: return skip_type_input_chat_photo (T);
+  case 0xc59f8892: return skip_type_bare_input_chat_photo (T);
+  case 0xf392b7f4: return skip_type_input_contact (T);
+  case 0x0c6d480b: return skip_type_bare_input_contact (T);
+  case 0x6a8963fc: return skip_type_input_document (T);
+  case 0x95769c03: return skip_type_bare_input_document (T);
+  case 0xf141b5e1: return skip_type_input_encrypted_chat (T);
+  case 0x0ebe4a1e: return skip_type_bare_input_encrypted_chat (T);
+  case 0x0b5c064f: return skip_type_input_encrypted_file (T);
+  case 0xf4a3f9b0: return skip_type_bare_input_encrypted_file (T);
+  case 0x0f60f9ca: return skip_type_input_file (T);
+  case 0xf09f0635: return skip_type_bare_input_file (T);
+  case 0xe6daa38b: return skip_type_input_file_location (T);
+  case 0x19255c74: return skip_type_bare_input_file_location (T);
+  case 0x74d456fa: return skip_type_input_geo_chat (T);
+  case 0x8b2ba905: return skip_type_bare_input_geo_chat (T);
+  case 0x17768f1f: return skip_type_input_geo_point (T);
+  case 0xe88970e0: return skip_type_bare_input_geo_point (T);
+  case 0x3670cf17: return skip_type_input_media (T);
+  case 0xc98f30e8: return skip_type_bare_input_media (T);
+  case 0x02b6911b: return skip_type_input_notify_peer (T);
+  case 0xfd496ee4: return skip_type_bare_input_notify_peer (T);
+  case 0x9e67268d: return skip_type_input_peer (T);
+  case 0x6198d972: return skip_type_bare_input_peer (T);
+  case 0x185a48ac: return skip_type_input_peer_notify_events (T);
+  case 0xe7a5b753: return skip_type_bare_input_peer_notify_events (T);
+  case 0x46a2ce98: return skip_type_input_peer_notify_settings (T);
+  case 0xb95d3167: return skip_type_bare_input_peer_notify_settings (T);
+  case 0xe74279c9: return skip_type_input_photo (T);
+  case 0x18bd8636: return skip_type_bare_input_photo (T);
+  case 0x7477e321: return skip_type_input_photo_crop (T);
+  case 0x8b881cde: return skip_type_bare_input_photo_crop (T);
+  case 0x4f96cb18: return skip_type_input_privacy_key (T);
+  case 0xb06934e7: return skip_type_bare_input_privacy_key (T);
+  case 0x4b815163: return skip_type_input_privacy_rule (T);
+  case 0xb47eae9c: return skip_type_bare_input_privacy_rule (T);
+  case 0xadfe0c6a: return skip_type_input_user (T);
+  case 0x5201f395: return skip_type_bare_input_user (T);
+  case 0xbb5f7a27: return skip_type_input_video (T);
+  case 0x44a085d8: return skip_type_bare_input_video (T);
+  case 0xa8509bda: return skip_type_int (T);
+  case 0x57af6425: return skip_type_bare_int (T);
+  case 0x7d36c439: return skip_type_int128 (T);
+  case 0x82c93bc6: return skip_type_bare_int128 (T);
+  case 0xf2c798b3: return skip_type_int256 (T);
+  case 0x0d38674c: return skip_type_bare_int256 (T);
+  case 0x22076cba: return skip_type_long (T);
+  case 0xddf89345: return skip_type_bare_long (T);
+  case 0x6b7257ff: return skip_type_message (T);
+  case 0x948da800: return skip_type_bare_message (T);
+  case 0xc0a8e012: return skip_type_message_action (T);
+  case 0x3f571fed: return skip_type_bare_message_action (T);
+  case 0x9f690be5: return skip_type_message_media (T);
+  case 0x6096f41a: return skip_type_bare_message_media (T);
+  case 0x59d7295b: return skip_type_messages_filter (T);
+  case 0xa628d6a4: return skip_type_bare_messages_filter (T);
+  case 0x8e1a1775: return skip_type_nearest_dc (T);
+  case 0x71e5e88a: return skip_type_bare_nearest_dc (T);
+  case 0x9fcb8237: return skip_type_notify_peer (T);
+  case 0x60347dc8: return skip_type_bare_notify_peer (T);
+  case 0x56730bcc: return skip_type_null (T);
+  case 0xa98cf433: return skip_type_bare_null (T);
+  case 0xbfa3de38: return skip_type_p_q_inner_data (T);
+  case 0x405c21c7: return skip_type_bare_p_q_inner_data (T);
+  case 0x276159d6: return skip_type_peer (T);
+  case 0xd89ea629: return skip_type_bare_peer (T);
+  case 0xc0c8d13b: return skip_type_peer_notify_events (T);
+  case 0x3f372ec4: return skip_type_bare_peer_notify_events (T);
+  case 0xfdf894fc: return skip_type_peer_notify_settings (T);
+  case 0x02076b03: return skip_type_bare_peer_notify_settings (T);
+  case 0x0184d57c: return skip_type_photo (T);
+  case 0xfe7b2a83: return skip_type_bare_photo (T);
+  case 0x900f60dd: return skip_type_photo_size (T);
+  case 0x6ff09f22: return skip_type_bare_photo_size (T);
+  case 0xbc2eab30: return skip_type_privacy_key (T);
+  case 0x43d154cf: return skip_type_bare_privacy_key (T);
+  case 0xa8638aec: return skip_type_privacy_rule (T);
+  case 0x579c7513: return skip_type_bare_privacy_rule (T);
+  case 0x05162463: return skip_type_res_p_q (T);
+  case 0xfae9db9c: return skip_type_bare_res_p_q (T);
+  case 0x88a65ee1: return skip_type_send_message_action (T);
+  case 0x7759a11e: return skip_type_bare_send_message_action (T);
+  case 0xa9230301: return skip_type_server_d_h_params (T);
+  case 0x56dcfcfe: return skip_type_bare_server_d_h_params (T);
+  case 0xb5890dba: return skip_type_server_d_h_inner_data (T);
+  case 0x4a76f245: return skip_type_bare_server_d_h_inner_data (T);
+  case 0xdb8a468f: return skip_type_set_client_d_h_params_answer (T);
+  case 0x2475b970: return skip_type_bare_set_client_d_h_params_answer (T);
+  case 0x12b299d4: return skip_type_sticker_pack (T);
+  case 0xed4d662b: return skip_type_bare_sticker_pack (T);
+  case 0xb5286e24: return skip_type_string (T);
+  case 0x4ad791db: return skip_type_bare_string (T);
+  case 0x7eb21a2b: return skip_type_update (T);
+  case 0x814de5d4: return skip_type_bare_update (T);
+  case 0x65edddf6: return skip_type_updates (T);
+  case 0x9a122209: return skip_type_bare_updates (T);
+  case 0x9227e4ce: return skip_type_user (T);
+  case 0x6dd81b31: return skip_type_bare_user (T);
+  case 0x771095da: return skip_type_user_full (T);
+  case 0x88ef6a25: return skip_type_bare_user_full (T);
+  case 0x9a486229: return skip_type_user_profile_photo (T);
+  case 0x65b79dd6: return skip_type_bare_user_profile_photo (T);
+  case 0x76de9570: return skip_type_user_status (T);
+  case 0x89216a8f: return skip_type_bare_user_status (T);
+  case 0x1cb5c415: return skip_type_vector (T);
+  case 0xe34a3bea: return skip_type_bare_vector (T);
+  case 0xf989fb39: return skip_type_video (T);
+  case 0x067604c6: return skip_type_bare_video (T);
+  case 0xafa14973: return skip_type_wall_paper (T);
+  case 0x505eb68c: return skip_type_bare_wall_paper (T);
+  case 0x24eeb8db: return skip_type_account_password (T);
+  case 0xdb114724: return skip_type_bare_account_password (T);
+  case 0x554abb6f: return skip_type_account_privacy_rules (T);
+  case 0xaab54490: return skip_type_bare_account_privacy_rules (T);
+  case 0xa4f58c4c: return skip_type_account_sent_change_phone_code (T);
+  case 0x5b0a73b3: return skip_type_bare_account_sent_change_phone_code (T);
+  case 0xf6b673a4: return skip_type_auth_authorization (T);
+  case 0x09498c5b: return skip_type_bare_auth_authorization (T);
+  case 0xe300cc3b: return skip_type_auth_checked_phone (T);
+  case 0x1cff33c4: return skip_type_bare_auth_checked_phone (T);
+  case 0xdf969c2d: return skip_type_auth_exported_authorization (T);
+  case 0x206963d2: return skip_type_bare_auth_exported_authorization (T);
+  case 0x0cc8bc16: return skip_type_auth_sent_code (T);
+  case 0xf33743e9: return skip_type_bare_auth_sent_code (T);
+  case 0xe97ad32a: return skip_type_binlog_chat_participant (T);
+  case 0x16852cd5: return skip_type_bare_binlog_chat_participant (T);
+  case 0xae7ae5ce: return skip_type_binlog_file_location (T);
+  case 0x51851a31: return skip_type_bare_binlog_file_location (T);
+  case 0xf034fbee: return skip_type_binlog_update (T);
+  case 0x0fcb0411: return skip_type_bare_binlog_update (T);
+  case 0x8c1b8fb4: return skip_type_contacts_blocked (T);
+  case 0x73e4704b: return skip_type_bare_contacts_blocked (T);
+  case 0xd8c02560: return skip_type_contacts_contacts (T);
+  case 0x273fda9f: return skip_type_bare_contacts_contacts (T);
+  case 0xaf5eb25e: return skip_type_contacts_foreign_link (T);
+  case 0x50a14da1: return skip_type_bare_contacts_foreign_link (T);
+  case 0x0566000e: return skip_type_contacts_found (T);
+  case 0xfa99fff1: return skip_type_bare_contacts_found (T);
+  case 0xad524315: return skip_type_contacts_imported_contacts (T);
+  case 0x52adbcea: return skip_type_bare_contacts_imported_contacts (T);
+  case 0xeccea3f5: return skip_type_contacts_link (T);
+  case 0x13315c0a: return skip_type_bare_contacts_link (T);
+  case 0x7c031857: return skip_type_contacts_my_link (T);
+  case 0x83fce7a8: return skip_type_bare_contacts_my_link (T);
+  case 0x5649dcc5: return skip_type_contacts_suggested (T);
+  case 0xa9b6233a: return skip_type_bare_contacts_suggested (T);
+  case 0x48feb267: return skip_type_geochats_located (T);
+  case 0xb7014d98: return skip_type_bare_geochats_located (T);
+  case 0x6d0a0e59: return skip_type_geochats_messages (T);
+  case 0x92f5f1a6: return skip_type_bare_geochats_messages (T);
+  case 0x17b1578b: return skip_type_geochats_stated_message (T);
+  case 0xe84ea874: return skip_type_bare_geochats_stated_message (T);
+  case 0x4ddd9627: return skip_type_help_app_update (T);
+  case 0xb22269d8: return skip_type_bare_help_app_update (T);
+  case 0x18cb9f78: return skip_type_help_invite_text (T);
+  case 0xe7346087: return skip_type_bare_help_invite_text (T);
+  case 0x17c6b5f6: return skip_type_help_support (T);
+  case 0xe8394a09: return skip_type_bare_help_support (T);
+  case 0xb7de36f2: return skip_type_messages_affected_history (T);
+  case 0x4821c90d: return skip_type_bare_messages_affected_history (T);
+  case 0x348933c1: return skip_type_messages_all_stickers (T);
+  case 0xcb76cc3e: return skip_type_bare_messages_all_stickers (T);
+  case 0x40e9002a: return skip_type_messages_chat (T);
+  case 0xbf16ffd5: return skip_type_bare_messages_chat (T);
+  case 0xe5d7d19c: return skip_type_messages_chat_full (T);
+  case 0x1a282e63: return skip_type_bare_messages_chat_full (T);
+  case 0x8150cbd8: return skip_type_messages_chats (T);
+  case 0x7eaf3427: return skip_type_bare_messages_chats (T);
+  case 0xecc058e8: return skip_type_messages_dh_config (T);
+  case 0x133fa717: return skip_type_bare_messages_dh_config (T);
+  case 0x645af8b3: return skip_type_messages_dialogs (T);
+  case 0x9ba5074c: return skip_type_bare_messages_dialogs (T);
+  case 0xc0dec25f: return skip_type_messages_message (T);
+  case 0x3f213da0: return skip_type_bare_messages_message (T);
+  case 0x8735e464: return skip_type_messages_messages (T);
+  case 0x78ca1b9b: return skip_type_bare_messages_messages (T);
+  case 0xc29c7607: return skip_type_messages_sent_encrypted_message (T);
+  case 0x3d6389f8: return skip_type_bare_messages_sent_encrypted_message (T);
+  case 0x382f9963: return skip_type_messages_sent_message (T);
+  case 0xc7d0669c: return skip_type_bare_messages_sent_message (T);
+  case 0x79d5cfa7: return skip_type_messages_stated_message (T);
+  case 0x862a3058: return skip_type_bare_messages_stated_message (T);
+  case 0xa8e08d7d: return skip_type_messages_stated_messages (T);
+  case 0x571f7282: return skip_type_bare_messages_stated_messages (T);
+  case 0x7bfa5710: return skip_type_messages_stickers (T);
+  case 0x8405a8ef: return skip_type_bare_messages_stickers (T);
+  case 0x20212ca8: return skip_type_photos_photo (T);
+  case 0xdfded357: return skip_type_bare_photos_photo (T);
+  case 0x98cf75f1: return skip_type_photos_photos (T);
+  case 0x67308a0e: return skip_type_bare_photos_photos (T);
+  case 0x3e2838a8: return skip_type_storage_file_type (T);
+  case 0xc1d7c757: return skip_type_bare_storage_file_type (T);
+  case 0xf57a2419: return skip_type_updates_difference (T);
+  case 0x0a85dbe6: return skip_type_bare_updates_difference (T);
+  case 0xa56c2a3e: return skip_type_updates_state (T);
+  case 0x5a93d5c1: return skip_type_bare_updates_state (T);
+  case 0x096a18d5: return skip_type_upload_file (T);
+  case 0xf695e72a: return skip_type_bare_upload_file (T);
+  default: return -1; }
+}
+int store_type_any (struct paramed_type *T) {
+  switch (T->type->name) {
+  case 0xb8d0afdf: return store_type_account_days_t_t_l (T);
+  case 0x472f5020: return store_type_bare_account_days_t_t_l (T);
+  case 0x9fc5ec4e: return store_type_audio (T);
+  case 0x603a13b1: return store_type_bare_audio (T);
+  case 0x250be282: return store_type_bool (T);
+  case 0xdaf41d7d: return store_type_bare_bool (T);
+  case 0x0ee1379f: return store_type_bytes (T);
+  case 0xf11ec860: return store_type_bare_bytes (T);
+  case 0x7bd865dc: return store_type_chat (T);
+  case 0x84279a23: return store_type_bare_chat (T);
+  case 0x630e61be: return store_type_chat_full (T);
+  case 0x9cf19e41: return store_type_bare_chat_full (T);
+  case 0x3631cf4c: return store_type_chat_located (T);
+  case 0xc9ce30b3: return store_type_bare_chat_located (T);
+  case 0xc8d7493e: return store_type_chat_participant (T);
+  case 0x3728b6c1: return store_type_bare_chat_participant (T);
+  case 0x77930f9f: return store_type_chat_participants (T);
+  case 0x886cf060: return store_type_bare_chat_participants (T);
+  case 0x56922676: return store_type_chat_photo (T);
+  case 0xa96dd989: return store_type_bare_chat_photo (T);
+  case 0x6643b654: return store_type_client_d_h_inner_data (T);
+  case 0x99bc49ab: return store_type_bare_client_d_h_inner_data (T);
+  case 0x2e54dd74: return store_type_config (T);
+  case 0xd1ab228b: return store_type_bare_config (T);
+  case 0xf911c994: return store_type_contact (T);
+  case 0x06ee366b: return store_type_bare_contact (T);
+  case 0x561bc879: return store_type_contact_blocked (T);
+  case 0xa9e43786: return store_type_bare_contact_blocked (T);
+  case 0xea879f95: return store_type_contact_found (T);
+  case 0x1578606a: return store_type_bare_contact_found (T);
+  case 0xd3680c61: return store_type_contact_status (T);
+  case 0x2c97f39e: return store_type_bare_contact_status (T);
+  case 0x3de191a1: return store_type_contact_suggested (T);
+  case 0xc21e6e5e: return store_type_bare_contact_suggested (T);
+  case 0x2ec2a43c: return store_type_dc_option (T);
+  case 0xd13d5bc3: return store_type_bare_dc_option (T);
+  case 0xe692047a: return store_type_decrypted_message (T);
+  case 0x196dfb85: return store_type_bare_decrypted_message (T);
+  case 0x4e0eefde: return store_type_decrypted_message_action (T);
+  case 0xb1f11021: return store_type_bare_decrypted_message_action (T);
+  case 0x1be31789: return store_type_decrypted_message_layer (T);
+  case 0xe41ce876: return store_type_bare_decrypted_message_layer (T);
+  case 0xe21b7dd5: return store_type_decrypted_message_media (T);
+  case 0x1de4822a: return store_type_bare_decrypted_message_media (T);
+  case 0xab3a99ac: return store_type_dialog (T);
+  case 0x54c56653: return store_type_bare_dialog (T);
+  case 0x51a73418: return store_type_document (T);
+  case 0xae58cbe7: return store_type_bare_document (T);
+  case 0xcfd59b04: return store_type_document_attribute (T);
+  case 0x302a64fb: return store_type_bare_document_attribute (T);
+  case 0x2210c154: return store_type_double (T);
+  case 0xddef3eab: return store_type_bare_double (T);
+  case 0xb1718213: return store_type_encrypted_chat (T);
+  case 0x4e8e7dec: return store_type_bare_encrypted_chat (T);
+  case 0x886fd032: return store_type_encrypted_file (T);
+  case 0x77902fcd: return store_type_bare_encrypted_file (T);
+  case 0xce6b8a1e: return store_type_encrypted_message (T);
+  case 0x319475e1: return store_type_bare_encrypted_message (T);
+  case 0xc4b9f9bb: return store_type_error (T);
+  case 0x3b460644: return store_type_bare_error (T);
+  case 0x2f8ffb30: return store_type_file_location (T);
+  case 0xd07004cf: return store_type_bare_file_location (T);
+  case 0xf67b4034: return store_type_geo_chat_message (T);
+  case 0x0984bfcb: return store_type_bare_geo_chat_message (T);
+  case 0x315e0a53: return store_type_geo_point (T);
+  case 0xcea1f5ac: return store_type_bare_geo_point (T);
+  case 0xd0028438: return store_type_imported_contact (T);
+  case 0x2ffd7bc7: return store_type_bare_imported_contact (T);
+  case 0x770656a8: return store_type_input_app_event (T);
+  case 0x88f9a957: return store_type_bare_input_app_event (T);
+  case 0xae8e9c7b: return store_type_input_audio (T);
+  case 0x51716384: return store_type_bare_input_audio (T);
+  case 0x3a60776d: return store_type_input_chat_photo (T);
+  case 0xc59f8892: return store_type_bare_input_chat_photo (T);
+  case 0xf392b7f4: return store_type_input_contact (T);
+  case 0x0c6d480b: return store_type_bare_input_contact (T);
+  case 0x6a8963fc: return store_type_input_document (T);
+  case 0x95769c03: return store_type_bare_input_document (T);
+  case 0xf141b5e1: return store_type_input_encrypted_chat (T);
+  case 0x0ebe4a1e: return store_type_bare_input_encrypted_chat (T);
+  case 0x0b5c064f: return store_type_input_encrypted_file (T);
+  case 0xf4a3f9b0: return store_type_bare_input_encrypted_file (T);
+  case 0x0f60f9ca: return store_type_input_file (T);
+  case 0xf09f0635: return store_type_bare_input_file (T);
+  case 0xe6daa38b: return store_type_input_file_location (T);
+  case 0x19255c74: return store_type_bare_input_file_location (T);
+  case 0x74d456fa: return store_type_input_geo_chat (T);
+  case 0x8b2ba905: return store_type_bare_input_geo_chat (T);
+  case 0x17768f1f: return store_type_input_geo_point (T);
+  case 0xe88970e0: return store_type_bare_input_geo_point (T);
+  case 0x3670cf17: return store_type_input_media (T);
+  case 0xc98f30e8: return store_type_bare_input_media (T);
+  case 0x02b6911b: return store_type_input_notify_peer (T);
+  case 0xfd496ee4: return store_type_bare_input_notify_peer (T);
+  case 0x9e67268d: return store_type_input_peer (T);
+  case 0x6198d972: return store_type_bare_input_peer (T);
+  case 0x185a48ac: return store_type_input_peer_notify_events (T);
+  case 0xe7a5b753: return store_type_bare_input_peer_notify_events (T);
+  case 0x46a2ce98: return store_type_input_peer_notify_settings (T);
+  case 0xb95d3167: return store_type_bare_input_peer_notify_settings (T);
+  case 0xe74279c9: return store_type_input_photo (T);
+  case 0x18bd8636: return store_type_bare_input_photo (T);
+  case 0x7477e321: return store_type_input_photo_crop (T);
+  case 0x8b881cde: return store_type_bare_input_photo_crop (T);
+  case 0x4f96cb18: return store_type_input_privacy_key (T);
+  case 0xb06934e7: return store_type_bare_input_privacy_key (T);
+  case 0x4b815163: return store_type_input_privacy_rule (T);
+  case 0xb47eae9c: return store_type_bare_input_privacy_rule (T);
+  case 0xadfe0c6a: return store_type_input_user (T);
+  case 0x5201f395: return store_type_bare_input_user (T);
+  case 0xbb5f7a27: return store_type_input_video (T);
+  case 0x44a085d8: return store_type_bare_input_video (T);
+  case 0xa8509bda: return store_type_int (T);
+  case 0x57af6425: return store_type_bare_int (T);
+  case 0x7d36c439: return store_type_int128 (T);
+  case 0x82c93bc6: return store_type_bare_int128 (T);
+  case 0xf2c798b3: return store_type_int256 (T);
+  case 0x0d38674c: return store_type_bare_int256 (T);
+  case 0x22076cba: return store_type_long (T);
+  case 0xddf89345: return store_type_bare_long (T);
+  case 0x6b7257ff: return store_type_message (T);
+  case 0x948da800: return store_type_bare_message (T);
+  case 0xc0a8e012: return store_type_message_action (T);
+  case 0x3f571fed: return store_type_bare_message_action (T);
+  case 0x9f690be5: return store_type_message_media (T);
+  case 0x6096f41a: return store_type_bare_message_media (T);
+  case 0x59d7295b: return store_type_messages_filter (T);
+  case 0xa628d6a4: return store_type_bare_messages_filter (T);
+  case 0x8e1a1775: return store_type_nearest_dc (T);
+  case 0x71e5e88a: return store_type_bare_nearest_dc (T);
+  case 0x9fcb8237: return store_type_notify_peer (T);
+  case 0x60347dc8: return store_type_bare_notify_peer (T);
+  case 0x56730bcc: return store_type_null (T);
+  case 0xa98cf433: return store_type_bare_null (T);
+  case 0xbfa3de38: return store_type_p_q_inner_data (T);
+  case 0x405c21c7: return store_type_bare_p_q_inner_data (T);
+  case 0x276159d6: return store_type_peer (T);
+  case 0xd89ea629: return store_type_bare_peer (T);
+  case 0xc0c8d13b: return store_type_peer_notify_events (T);
+  case 0x3f372ec4: return store_type_bare_peer_notify_events (T);
+  case 0xfdf894fc: return store_type_peer_notify_settings (T);
+  case 0x02076b03: return store_type_bare_peer_notify_settings (T);
+  case 0x0184d57c: return store_type_photo (T);
+  case 0xfe7b2a83: return store_type_bare_photo (T);
+  case 0x900f60dd: return store_type_photo_size (T);
+  case 0x6ff09f22: return store_type_bare_photo_size (T);
+  case 0xbc2eab30: return store_type_privacy_key (T);
+  case 0x43d154cf: return store_type_bare_privacy_key (T);
+  case 0xa8638aec: return store_type_privacy_rule (T);
+  case 0x579c7513: return store_type_bare_privacy_rule (T);
+  case 0x05162463: return store_type_res_p_q (T);
+  case 0xfae9db9c: return store_type_bare_res_p_q (T);
+  case 0x88a65ee1: return store_type_send_message_action (T);
+  case 0x7759a11e: return store_type_bare_send_message_action (T);
+  case 0xa9230301: return store_type_server_d_h_params (T);
+  case 0x56dcfcfe: return store_type_bare_server_d_h_params (T);
+  case 0xb5890dba: return store_type_server_d_h_inner_data (T);
+  case 0x4a76f245: return store_type_bare_server_d_h_inner_data (T);
+  case 0xdb8a468f: return store_type_set_client_d_h_params_answer (T);
+  case 0x2475b970: return store_type_bare_set_client_d_h_params_answer (T);
+  case 0x12b299d4: return store_type_sticker_pack (T);
+  case 0xed4d662b: return store_type_bare_sticker_pack (T);
+  case 0xb5286e24: return store_type_string (T);
+  case 0x4ad791db: return store_type_bare_string (T);
+  case 0x7eb21a2b: return store_type_update (T);
+  case 0x814de5d4: return store_type_bare_update (T);
+  case 0x65edddf6: return store_type_updates (T);
+  case 0x9a122209: return store_type_bare_updates (T);
+  case 0x9227e4ce: return store_type_user (T);
+  case 0x6dd81b31: return store_type_bare_user (T);
+  case 0x771095da: return store_type_user_full (T);
+  case 0x88ef6a25: return store_type_bare_user_full (T);
+  case 0x9a486229: return store_type_user_profile_photo (T);
+  case 0x65b79dd6: return store_type_bare_user_profile_photo (T);
+  case 0x76de9570: return store_type_user_status (T);
+  case 0x89216a8f: return store_type_bare_user_status (T);
+  case 0x1cb5c415: return store_type_vector (T);
+  case 0xe34a3bea: return store_type_bare_vector (T);
+  case 0xf989fb39: return store_type_video (T);
+  case 0x067604c6: return store_type_bare_video (T);
+  case 0xafa14973: return store_type_wall_paper (T);
+  case 0x505eb68c: return store_type_bare_wall_paper (T);
+  case 0x24eeb8db: return store_type_account_password (T);
+  case 0xdb114724: return store_type_bare_account_password (T);
+  case 0x554abb6f: return store_type_account_privacy_rules (T);
+  case 0xaab54490: return store_type_bare_account_privacy_rules (T);
+  case 0xa4f58c4c: return store_type_account_sent_change_phone_code (T);
+  case 0x5b0a73b3: return store_type_bare_account_sent_change_phone_code (T);
+  case 0xf6b673a4: return store_type_auth_authorization (T);
+  case 0x09498c5b: return store_type_bare_auth_authorization (T);
+  case 0xe300cc3b: return store_type_auth_checked_phone (T);
+  case 0x1cff33c4: return store_type_bare_auth_checked_phone (T);
+  case 0xdf969c2d: return store_type_auth_exported_authorization (T);
+  case 0x206963d2: return store_type_bare_auth_exported_authorization (T);
+  case 0x0cc8bc16: return store_type_auth_sent_code (T);
+  case 0xf33743e9: return store_type_bare_auth_sent_code (T);
+  case 0xe97ad32a: return store_type_binlog_chat_participant (T);
+  case 0x16852cd5: return store_type_bare_binlog_chat_participant (T);
+  case 0xae7ae5ce: return store_type_binlog_file_location (T);
+  case 0x51851a31: return store_type_bare_binlog_file_location (T);
+  case 0xf034fbee: return store_type_binlog_update (T);
+  case 0x0fcb0411: return store_type_bare_binlog_update (T);
+  case 0x8c1b8fb4: return store_type_contacts_blocked (T);
+  case 0x73e4704b: return store_type_bare_contacts_blocked (T);
+  case 0xd8c02560: return store_type_contacts_contacts (T);
+  case 0x273fda9f: return store_type_bare_contacts_contacts (T);
+  case 0xaf5eb25e: return store_type_contacts_foreign_link (T);
+  case 0x50a14da1: return store_type_bare_contacts_foreign_link (T);
+  case 0x0566000e: return store_type_contacts_found (T);
+  case 0xfa99fff1: return store_type_bare_contacts_found (T);
+  case 0xad524315: return store_type_contacts_imported_contacts (T);
+  case 0x52adbcea: return store_type_bare_contacts_imported_contacts (T);
+  case 0xeccea3f5: return store_type_contacts_link (T);
+  case 0x13315c0a: return store_type_bare_contacts_link (T);
+  case 0x7c031857: return store_type_contacts_my_link (T);
+  case 0x83fce7a8: return store_type_bare_contacts_my_link (T);
+  case 0x5649dcc5: return store_type_contacts_suggested (T);
+  case 0xa9b6233a: return store_type_bare_contacts_suggested (T);
+  case 0x48feb267: return store_type_geochats_located (T);
+  case 0xb7014d98: return store_type_bare_geochats_located (T);
+  case 0x6d0a0e59: return store_type_geochats_messages (T);
+  case 0x92f5f1a6: return store_type_bare_geochats_messages (T);
+  case 0x17b1578b: return store_type_geochats_stated_message (T);
+  case 0xe84ea874: return store_type_bare_geochats_stated_message (T);
+  case 0x4ddd9627: return store_type_help_app_update (T);
+  case 0xb22269d8: return store_type_bare_help_app_update (T);
+  case 0x18cb9f78: return store_type_help_invite_text (T);
+  case 0xe7346087: return store_type_bare_help_invite_text (T);
+  case 0x17c6b5f6: return store_type_help_support (T);
+  case 0xe8394a09: return store_type_bare_help_support (T);
+  case 0xb7de36f2: return store_type_messages_affected_history (T);
+  case 0x4821c90d: return store_type_bare_messages_affected_history (T);
+  case 0x348933c1: return store_type_messages_all_stickers (T);
+  case 0xcb76cc3e: return store_type_bare_messages_all_stickers (T);
+  case 0x40e9002a: return store_type_messages_chat (T);
+  case 0xbf16ffd5: return store_type_bare_messages_chat (T);
+  case 0xe5d7d19c: return store_type_messages_chat_full (T);
+  case 0x1a282e63: return store_type_bare_messages_chat_full (T);
+  case 0x8150cbd8: return store_type_messages_chats (T);
+  case 0x7eaf3427: return store_type_bare_messages_chats (T);
+  case 0xecc058e8: return store_type_messages_dh_config (T);
+  case 0x133fa717: return store_type_bare_messages_dh_config (T);
+  case 0x645af8b3: return store_type_messages_dialogs (T);
+  case 0x9ba5074c: return store_type_bare_messages_dialogs (T);
+  case 0xc0dec25f: return store_type_messages_message (T);
+  case 0x3f213da0: return store_type_bare_messages_message (T);
+  case 0x8735e464: return store_type_messages_messages (T);
+  case 0x78ca1b9b: return store_type_bare_messages_messages (T);
+  case 0xc29c7607: return store_type_messages_sent_encrypted_message (T);
+  case 0x3d6389f8: return store_type_bare_messages_sent_encrypted_message (T);
+  case 0x382f9963: return store_type_messages_sent_message (T);
+  case 0xc7d0669c: return store_type_bare_messages_sent_message (T);
+  case 0x79d5cfa7: return store_type_messages_stated_message (T);
+  case 0x862a3058: return store_type_bare_messages_stated_message (T);
+  case 0xa8e08d7d: return store_type_messages_stated_messages (T);
+  case 0x571f7282: return store_type_bare_messages_stated_messages (T);
+  case 0x7bfa5710: return store_type_messages_stickers (T);
+  case 0x8405a8ef: return store_type_bare_messages_stickers (T);
+  case 0x20212ca8: return store_type_photos_photo (T);
+  case 0xdfded357: return store_type_bare_photos_photo (T);
+  case 0x98cf75f1: return store_type_photos_photos (T);
+  case 0x67308a0e: return store_type_bare_photos_photos (T);
+  case 0x3e2838a8: return store_type_storage_file_type (T);
+  case 0xc1d7c757: return store_type_bare_storage_file_type (T);
+  case 0xf57a2419: return store_type_updates_difference (T);
+  case 0x0a85dbe6: return store_type_bare_updates_difference (T);
+  case 0xa56c2a3e: return store_type_updates_state (T);
+  case 0x5a93d5c1: return store_type_bare_updates_state (T);
+  case 0x096a18d5: return store_type_upload_file (T);
+  case 0xf695e72a: return store_type_bare_upload_file (T);
+  default: return -1; }
+}
+int fetch_type_any (struct paramed_type *T) {
+  switch (T->type->name) {
+  case 0xb8d0afdf: return fetch_type_account_days_t_t_l (T);
+  case 0x472f5020: return fetch_type_bare_account_days_t_t_l (T);
+  case 0x9fc5ec4e: return fetch_type_audio (T);
+  case 0x603a13b1: return fetch_type_bare_audio (T);
+  case 0x250be282: return fetch_type_bool (T);
+  case 0xdaf41d7d: return fetch_type_bare_bool (T);
+  case 0x0ee1379f: return fetch_type_bytes (T);
+  case 0xf11ec860: return fetch_type_bare_bytes (T);
+  case 0x7bd865dc: return fetch_type_chat (T);
+  case 0x84279a23: return fetch_type_bare_chat (T);
+  case 0x630e61be: return fetch_type_chat_full (T);
+  case 0x9cf19e41: return fetch_type_bare_chat_full (T);
+  case 0x3631cf4c: return fetch_type_chat_located (T);
+  case 0xc9ce30b3: return fetch_type_bare_chat_located (T);
+  case 0xc8d7493e: return fetch_type_chat_participant (T);
+  case 0x3728b6c1: return fetch_type_bare_chat_participant (T);
+  case 0x77930f9f: return fetch_type_chat_participants (T);
+  case 0x886cf060: return fetch_type_bare_chat_participants (T);
+  case 0x56922676: return fetch_type_chat_photo (T);
+  case 0xa96dd989: return fetch_type_bare_chat_photo (T);
+  case 0x6643b654: return fetch_type_client_d_h_inner_data (T);
+  case 0x99bc49ab: return fetch_type_bare_client_d_h_inner_data (T);
+  case 0x2e54dd74: return fetch_type_config (T);
+  case 0xd1ab228b: return fetch_type_bare_config (T);
+  case 0xf911c994: return fetch_type_contact (T);
+  case 0x06ee366b: return fetch_type_bare_contact (T);
+  case 0x561bc879: return fetch_type_contact_blocked (T);
+  case 0xa9e43786: return fetch_type_bare_contact_blocked (T);
+  case 0xea879f95: return fetch_type_contact_found (T);
+  case 0x1578606a: return fetch_type_bare_contact_found (T);
+  case 0xd3680c61: return fetch_type_contact_status (T);
+  case 0x2c97f39e: return fetch_type_bare_contact_status (T);
+  case 0x3de191a1: return fetch_type_contact_suggested (T);
+  case 0xc21e6e5e: return fetch_type_bare_contact_suggested (T);
+  case 0x2ec2a43c: return fetch_type_dc_option (T);
+  case 0xd13d5bc3: return fetch_type_bare_dc_option (T);
+  case 0xe692047a: return fetch_type_decrypted_message (T);
+  case 0x196dfb85: return fetch_type_bare_decrypted_message (T);
+  case 0x4e0eefde: return fetch_type_decrypted_message_action (T);
+  case 0xb1f11021: return fetch_type_bare_decrypted_message_action (T);
+  case 0x1be31789: return fetch_type_decrypted_message_layer (T);
+  case 0xe41ce876: return fetch_type_bare_decrypted_message_layer (T);
+  case 0xe21b7dd5: return fetch_type_decrypted_message_media (T);
+  case 0x1de4822a: return fetch_type_bare_decrypted_message_media (T);
+  case 0xab3a99ac: return fetch_type_dialog (T);
+  case 0x54c56653: return fetch_type_bare_dialog (T);
+  case 0x51a73418: return fetch_type_document (T);
+  case 0xae58cbe7: return fetch_type_bare_document (T);
+  case 0xcfd59b04: return fetch_type_document_attribute (T);
+  case 0x302a64fb: return fetch_type_bare_document_attribute (T);
+  case 0x2210c154: return fetch_type_double (T);
+  case 0xddef3eab: return fetch_type_bare_double (T);
+  case 0xb1718213: return fetch_type_encrypted_chat (T);
+  case 0x4e8e7dec: return fetch_type_bare_encrypted_chat (T);
+  case 0x886fd032: return fetch_type_encrypted_file (T);
+  case 0x77902fcd: return fetch_type_bare_encrypted_file (T);
+  case 0xce6b8a1e: return fetch_type_encrypted_message (T);
+  case 0x319475e1: return fetch_type_bare_encrypted_message (T);
+  case 0xc4b9f9bb: return fetch_type_error (T);
+  case 0x3b460644: return fetch_type_bare_error (T);
+  case 0x2f8ffb30: return fetch_type_file_location (T);
+  case 0xd07004cf: return fetch_type_bare_file_location (T);
+  case 0xf67b4034: return fetch_type_geo_chat_message (T);
+  case 0x0984bfcb: return fetch_type_bare_geo_chat_message (T);
+  case 0x315e0a53: return fetch_type_geo_point (T);
+  case 0xcea1f5ac: return fetch_type_bare_geo_point (T);
+  case 0xd0028438: return fetch_type_imported_contact (T);
+  case 0x2ffd7bc7: return fetch_type_bare_imported_contact (T);
+  case 0x770656a8: return fetch_type_input_app_event (T);
+  case 0x88f9a957: return fetch_type_bare_input_app_event (T);
+  case 0xae8e9c7b: return fetch_type_input_audio (T);
+  case 0x51716384: return fetch_type_bare_input_audio (T);
+  case 0x3a60776d: return fetch_type_input_chat_photo (T);
+  case 0xc59f8892: return fetch_type_bare_input_chat_photo (T);
+  case 0xf392b7f4: return fetch_type_input_contact (T);
+  case 0x0c6d480b: return fetch_type_bare_input_contact (T);
+  case 0x6a8963fc: return fetch_type_input_document (T);
+  case 0x95769c03: return fetch_type_bare_input_document (T);
+  case 0xf141b5e1: return fetch_type_input_encrypted_chat (T);
+  case 0x0ebe4a1e: return fetch_type_bare_input_encrypted_chat (T);
+  case 0x0b5c064f: return fetch_type_input_encrypted_file (T);
+  case 0xf4a3f9b0: return fetch_type_bare_input_encrypted_file (T);
+  case 0x0f60f9ca: return fetch_type_input_file (T);
+  case 0xf09f0635: return fetch_type_bare_input_file (T);
+  case 0xe6daa38b: return fetch_type_input_file_location (T);
+  case 0x19255c74: return fetch_type_bare_input_file_location (T);
+  case 0x74d456fa: return fetch_type_input_geo_chat (T);
+  case 0x8b2ba905: return fetch_type_bare_input_geo_chat (T);
+  case 0x17768f1f: return fetch_type_input_geo_point (T);
+  case 0xe88970e0: return fetch_type_bare_input_geo_point (T);
+  case 0x3670cf17: return fetch_type_input_media (T);
+  case 0xc98f30e8: return fetch_type_bare_input_media (T);
+  case 0x02b6911b: return fetch_type_input_notify_peer (T);
+  case 0xfd496ee4: return fetch_type_bare_input_notify_peer (T);
+  case 0x9e67268d: return fetch_type_input_peer (T);
+  case 0x6198d972: return fetch_type_bare_input_peer (T);
+  case 0x185a48ac: return fetch_type_input_peer_notify_events (T);
+  case 0xe7a5b753: return fetch_type_bare_input_peer_notify_events (T);
+  case 0x46a2ce98: return fetch_type_input_peer_notify_settings (T);
+  case 0xb95d3167: return fetch_type_bare_input_peer_notify_settings (T);
+  case 0xe74279c9: return fetch_type_input_photo (T);
+  case 0x18bd8636: return fetch_type_bare_input_photo (T);
+  case 0x7477e321: return fetch_type_input_photo_crop (T);
+  case 0x8b881cde: return fetch_type_bare_input_photo_crop (T);
+  case 0x4f96cb18: return fetch_type_input_privacy_key (T);
+  case 0xb06934e7: return fetch_type_bare_input_privacy_key (T);
+  case 0x4b815163: return fetch_type_input_privacy_rule (T);
+  case 0xb47eae9c: return fetch_type_bare_input_privacy_rule (T);
+  case 0xadfe0c6a: return fetch_type_input_user (T);
+  case 0x5201f395: return fetch_type_bare_input_user (T);
+  case 0xbb5f7a27: return fetch_type_input_video (T);
+  case 0x44a085d8: return fetch_type_bare_input_video (T);
+  case 0xa8509bda: return fetch_type_int (T);
+  case 0x57af6425: return fetch_type_bare_int (T);
+  case 0x7d36c439: return fetch_type_int128 (T);
+  case 0x82c93bc6: return fetch_type_bare_int128 (T);
+  case 0xf2c798b3: return fetch_type_int256 (T);
+  case 0x0d38674c: return fetch_type_bare_int256 (T);
+  case 0x22076cba: return fetch_type_long (T);
+  case 0xddf89345: return fetch_type_bare_long (T);
+  case 0x6b7257ff: return fetch_type_message (T);
+  case 0x948da800: return fetch_type_bare_message (T);
+  case 0xc0a8e012: return fetch_type_message_action (T);
+  case 0x3f571fed: return fetch_type_bare_message_action (T);
+  case 0x9f690be5: return fetch_type_message_media (T);
+  case 0x6096f41a: return fetch_type_bare_message_media (T);
+  case 0x59d7295b: return fetch_type_messages_filter (T);
+  case 0xa628d6a4: return fetch_type_bare_messages_filter (T);
+  case 0x8e1a1775: return fetch_type_nearest_dc (T);
+  case 0x71e5e88a: return fetch_type_bare_nearest_dc (T);
+  case 0x9fcb8237: return fetch_type_notify_peer (T);
+  case 0x60347dc8: return fetch_type_bare_notify_peer (T);
+  case 0x56730bcc: return fetch_type_null (T);
+  case 0xa98cf433: return fetch_type_bare_null (T);
+  case 0xbfa3de38: return fetch_type_p_q_inner_data (T);
+  case 0x405c21c7: return fetch_type_bare_p_q_inner_data (T);
+  case 0x276159d6: return fetch_type_peer (T);
+  case 0xd89ea629: return fetch_type_bare_peer (T);
+  case 0xc0c8d13b: return fetch_type_peer_notify_events (T);
+  case 0x3f372ec4: return fetch_type_bare_peer_notify_events (T);
+  case 0xfdf894fc: return fetch_type_peer_notify_settings (T);
+  case 0x02076b03: return fetch_type_bare_peer_notify_settings (T);
+  case 0x0184d57c: return fetch_type_photo (T);
+  case 0xfe7b2a83: return fetch_type_bare_photo (T);
+  case 0x900f60dd: return fetch_type_photo_size (T);
+  case 0x6ff09f22: return fetch_type_bare_photo_size (T);
+  case 0xbc2eab30: return fetch_type_privacy_key (T);
+  case 0x43d154cf: return fetch_type_bare_privacy_key (T);
+  case 0xa8638aec: return fetch_type_privacy_rule (T);
+  case 0x579c7513: return fetch_type_bare_privacy_rule (T);
+  case 0x05162463: return fetch_type_res_p_q (T);
+  case 0xfae9db9c: return fetch_type_bare_res_p_q (T);
+  case 0x88a65ee1: return fetch_type_send_message_action (T);
+  case 0x7759a11e: return fetch_type_bare_send_message_action (T);
+  case 0xa9230301: return fetch_type_server_d_h_params (T);
+  case 0x56dcfcfe: return fetch_type_bare_server_d_h_params (T);
+  case 0xb5890dba: return fetch_type_server_d_h_inner_data (T);
+  case 0x4a76f245: return fetch_type_bare_server_d_h_inner_data (T);
+  case 0xdb8a468f: return fetch_type_set_client_d_h_params_answer (T);
+  case 0x2475b970: return fetch_type_bare_set_client_d_h_params_answer (T);
+  case 0x12b299d4: return fetch_type_sticker_pack (T);
+  case 0xed4d662b: return fetch_type_bare_sticker_pack (T);
+  case 0xb5286e24: return fetch_type_string (T);
+  case 0x4ad791db: return fetch_type_bare_string (T);
+  case 0x7eb21a2b: return fetch_type_update (T);
+  case 0x814de5d4: return fetch_type_bare_update (T);
+  case 0x65edddf6: return fetch_type_updates (T);
+  case 0x9a122209: return fetch_type_bare_updates (T);
+  case 0x9227e4ce: return fetch_type_user (T);
+  case 0x6dd81b31: return fetch_type_bare_user (T);
+  case 0x771095da: return fetch_type_user_full (T);
+  case 0x88ef6a25: return fetch_type_bare_user_full (T);
+  case 0x9a486229: return fetch_type_user_profile_photo (T);
+  case 0x65b79dd6: return fetch_type_bare_user_profile_photo (T);
+  case 0x76de9570: return fetch_type_user_status (T);
+  case 0x89216a8f: return fetch_type_bare_user_status (T);
+  case 0x1cb5c415: return fetch_type_vector (T);
+  case 0xe34a3bea: return fetch_type_bare_vector (T);
+  case 0xf989fb39: return fetch_type_video (T);
+  case 0x067604c6: return fetch_type_bare_video (T);
+  case 0xafa14973: return fetch_type_wall_paper (T);
+  case 0x505eb68c: return fetch_type_bare_wall_paper (T);
+  case 0x24eeb8db: return fetch_type_account_password (T);
+  case 0xdb114724: return fetch_type_bare_account_password (T);
+  case 0x554abb6f: return fetch_type_account_privacy_rules (T);
+  case 0xaab54490: return fetch_type_bare_account_privacy_rules (T);
+  case 0xa4f58c4c: return fetch_type_account_sent_change_phone_code (T);
+  case 0x5b0a73b3: return fetch_type_bare_account_sent_change_phone_code (T);
+  case 0xf6b673a4: return fetch_type_auth_authorization (T);
+  case 0x09498c5b: return fetch_type_bare_auth_authorization (T);
+  case 0xe300cc3b: return fetch_type_auth_checked_phone (T);
+  case 0x1cff33c4: return fetch_type_bare_auth_checked_phone (T);
+  case 0xdf969c2d: return fetch_type_auth_exported_authorization (T);
+  case 0x206963d2: return fetch_type_bare_auth_exported_authorization (T);
+  case 0x0cc8bc16: return fetch_type_auth_sent_code (T);
+  case 0xf33743e9: return fetch_type_bare_auth_sent_code (T);
+  case 0xe97ad32a: return fetch_type_binlog_chat_participant (T);
+  case 0x16852cd5: return fetch_type_bare_binlog_chat_participant (T);
+  case 0xae7ae5ce: return fetch_type_binlog_file_location (T);
+  case 0x51851a31: return fetch_type_bare_binlog_file_location (T);
+  case 0xf034fbee: return fetch_type_binlog_update (T);
+  case 0x0fcb0411: return fetch_type_bare_binlog_update (T);
+  case 0x8c1b8fb4: return fetch_type_contacts_blocked (T);
+  case 0x73e4704b: return fetch_type_bare_contacts_blocked (T);
+  case 0xd8c02560: return fetch_type_contacts_contacts (T);
+  case 0x273fda9f: return fetch_type_bare_contacts_contacts (T);
+  case 0xaf5eb25e: return fetch_type_contacts_foreign_link (T);
+  case 0x50a14da1: return fetch_type_bare_contacts_foreign_link (T);
+  case 0x0566000e: return fetch_type_contacts_found (T);
+  case 0xfa99fff1: return fetch_type_bare_contacts_found (T);
+  case 0xad524315: return fetch_type_contacts_imported_contacts (T);
+  case 0x52adbcea: return fetch_type_bare_contacts_imported_contacts (T);
+  case 0xeccea3f5: return fetch_type_contacts_link (T);
+  case 0x13315c0a: return fetch_type_bare_contacts_link (T);
+  case 0x7c031857: return fetch_type_contacts_my_link (T);
+  case 0x83fce7a8: return fetch_type_bare_contacts_my_link (T);
+  case 0x5649dcc5: return fetch_type_contacts_suggested (T);
+  case 0xa9b6233a: return fetch_type_bare_contacts_suggested (T);
+  case 0x48feb267: return fetch_type_geochats_located (T);
+  case 0xb7014d98: return fetch_type_bare_geochats_located (T);
+  case 0x6d0a0e59: return fetch_type_geochats_messages (T);
+  case 0x92f5f1a6: return fetch_type_bare_geochats_messages (T);
+  case 0x17b1578b: return fetch_type_geochats_stated_message (T);
+  case 0xe84ea874: return fetch_type_bare_geochats_stated_message (T);
+  case 0x4ddd9627: return fetch_type_help_app_update (T);
+  case 0xb22269d8: return fetch_type_bare_help_app_update (T);
+  case 0x18cb9f78: return fetch_type_help_invite_text (T);
+  case 0xe7346087: return fetch_type_bare_help_invite_text (T);
+  case 0x17c6b5f6: return fetch_type_help_support (T);
+  case 0xe8394a09: return fetch_type_bare_help_support (T);
+  case 0xb7de36f2: return fetch_type_messages_affected_history (T);
+  case 0x4821c90d: return fetch_type_bare_messages_affected_history (T);
+  case 0x348933c1: return fetch_type_messages_all_stickers (T);
+  case 0xcb76cc3e: return fetch_type_bare_messages_all_stickers (T);
+  case 0x40e9002a: return fetch_type_messages_chat (T);
+  case 0xbf16ffd5: return fetch_type_bare_messages_chat (T);
+  case 0xe5d7d19c: return fetch_type_messages_chat_full (T);
+  case 0x1a282e63: return fetch_type_bare_messages_chat_full (T);
+  case 0x8150cbd8: return fetch_type_messages_chats (T);
+  case 0x7eaf3427: return fetch_type_bare_messages_chats (T);
+  case 0xecc058e8: return fetch_type_messages_dh_config (T);
+  case 0x133fa717: return fetch_type_bare_messages_dh_config (T);
+  case 0x645af8b3: return fetch_type_messages_dialogs (T);
+  case 0x9ba5074c: return fetch_type_bare_messages_dialogs (T);
+  case 0xc0dec25f: return fetch_type_messages_message (T);
+  case 0x3f213da0: return fetch_type_bare_messages_message (T);
+  case 0x8735e464: return fetch_type_messages_messages (T);
+  case 0x78ca1b9b: return fetch_type_bare_messages_messages (T);
+  case 0xc29c7607: return fetch_type_messages_sent_encrypted_message (T);
+  case 0x3d6389f8: return fetch_type_bare_messages_sent_encrypted_message (T);
+  case 0x382f9963: return fetch_type_messages_sent_message (T);
+  case 0xc7d0669c: return fetch_type_bare_messages_sent_message (T);
+  case 0x79d5cfa7: return fetch_type_messages_stated_message (T);
+  case 0x862a3058: return fetch_type_bare_messages_stated_message (T);
+  case 0xa8e08d7d: return fetch_type_messages_stated_messages (T);
+  case 0x571f7282: return fetch_type_bare_messages_stated_messages (T);
+  case 0x7bfa5710: return fetch_type_messages_stickers (T);
+  case 0x8405a8ef: return fetch_type_bare_messages_stickers (T);
+  case 0x20212ca8: return fetch_type_photos_photo (T);
+  case 0xdfded357: return fetch_type_bare_photos_photo (T);
+  case 0x98cf75f1: return fetch_type_photos_photos (T);
+  case 0x67308a0e: return fetch_type_bare_photos_photos (T);
+  case 0x3e2838a8: return fetch_type_storage_file_type (T);
+  case 0xc1d7c757: return fetch_type_bare_storage_file_type (T);
+  case 0xf57a2419: return fetch_type_updates_difference (T);
+  case 0x0a85dbe6: return fetch_type_bare_updates_difference (T);
+  case 0xa56c2a3e: return fetch_type_updates_state (T);
+  case 0x5a93d5c1: return fetch_type_bare_updates_state (T);
+  case 0x096a18d5: return fetch_type_upload_file (T);
+  case 0xf695e72a: return fetch_type_bare_upload_file (T);
+  default: return -1; }
+}
+int autocomplete_type_any (struct paramed_type *T) {
+  switch (T->type->name) {
+  case 0xb8d0afdf: return autocomplete_type_account_days_t_t_l (T);
+  case 0x472f5020: return autocomplete_type_bare_account_days_t_t_l (T);
+  case 0x9fc5ec4e: return autocomplete_type_audio (T);
+  case 0x603a13b1: return autocomplete_type_bare_audio (T);
+  case 0x250be282: return autocomplete_type_bool (T);
+  case 0xdaf41d7d: return autocomplete_type_bare_bool (T);
+  case 0x0ee1379f: return autocomplete_type_bytes (T);
+  case 0xf11ec860: return autocomplete_type_bare_bytes (T);
+  case 0x7bd865dc: return autocomplete_type_chat (T);
+  case 0x84279a23: return autocomplete_type_bare_chat (T);
+  case 0x630e61be: return autocomplete_type_chat_full (T);
+  case 0x9cf19e41: return autocomplete_type_bare_chat_full (T);
+  case 0x3631cf4c: return autocomplete_type_chat_located (T);
+  case 0xc9ce30b3: return autocomplete_type_bare_chat_located (T);
+  case 0xc8d7493e: return autocomplete_type_chat_participant (T);
+  case 0x3728b6c1: return autocomplete_type_bare_chat_participant (T);
+  case 0x77930f9f: return autocomplete_type_chat_participants (T);
+  case 0x886cf060: return autocomplete_type_bare_chat_participants (T);
+  case 0x56922676: return autocomplete_type_chat_photo (T);
+  case 0xa96dd989: return autocomplete_type_bare_chat_photo (T);
+  case 0x6643b654: return autocomplete_type_client_d_h_inner_data (T);
+  case 0x99bc49ab: return autocomplete_type_bare_client_d_h_inner_data (T);
+  case 0x2e54dd74: return autocomplete_type_config (T);
+  case 0xd1ab228b: return autocomplete_type_bare_config (T);
+  case 0xf911c994: return autocomplete_type_contact (T);
+  case 0x06ee366b: return autocomplete_type_bare_contact (T);
+  case 0x561bc879: return autocomplete_type_contact_blocked (T);
+  case 0xa9e43786: return autocomplete_type_bare_contact_blocked (T);
+  case 0xea879f95: return autocomplete_type_contact_found (T);
+  case 0x1578606a: return autocomplete_type_bare_contact_found (T);
+  case 0xd3680c61: return autocomplete_type_contact_status (T);
+  case 0x2c97f39e: return autocomplete_type_bare_contact_status (T);
+  case 0x3de191a1: return autocomplete_type_contact_suggested (T);
+  case 0xc21e6e5e: return autocomplete_type_bare_contact_suggested (T);
+  case 0x2ec2a43c: return autocomplete_type_dc_option (T);
+  case 0xd13d5bc3: return autocomplete_type_bare_dc_option (T);
+  case 0xe692047a: return autocomplete_type_decrypted_message (T);
+  case 0x196dfb85: return autocomplete_type_bare_decrypted_message (T);
+  case 0x4e0eefde: return autocomplete_type_decrypted_message_action (T);
+  case 0xb1f11021: return autocomplete_type_bare_decrypted_message_action (T);
+  case 0x1be31789: return autocomplete_type_decrypted_message_layer (T);
+  case 0xe41ce876: return autocomplete_type_bare_decrypted_message_layer (T);
+  case 0xe21b7dd5: return autocomplete_type_decrypted_message_media (T);
+  case 0x1de4822a: return autocomplete_type_bare_decrypted_message_media (T);
+  case 0xab3a99ac: return autocomplete_type_dialog (T);
+  case 0x54c56653: return autocomplete_type_bare_dialog (T);
+  case 0x51a73418: return autocomplete_type_document (T);
+  case 0xae58cbe7: return autocomplete_type_bare_document (T);
+  case 0xcfd59b04: return autocomplete_type_document_attribute (T);
+  case 0x302a64fb: return autocomplete_type_bare_document_attribute (T);
+  case 0x2210c154: return autocomplete_type_double (T);
+  case 0xddef3eab: return autocomplete_type_bare_double (T);
+  case 0xb1718213: return autocomplete_type_encrypted_chat (T);
+  case 0x4e8e7dec: return autocomplete_type_bare_encrypted_chat (T);
+  case 0x886fd032: return autocomplete_type_encrypted_file (T);
+  case 0x77902fcd: return autocomplete_type_bare_encrypted_file (T);
+  case 0xce6b8a1e: return autocomplete_type_encrypted_message (T);
+  case 0x319475e1: return autocomplete_type_bare_encrypted_message (T);
+  case 0xc4b9f9bb: return autocomplete_type_error (T);
+  case 0x3b460644: return autocomplete_type_bare_error (T);
+  case 0x2f8ffb30: return autocomplete_type_file_location (T);
+  case 0xd07004cf: return autocomplete_type_bare_file_location (T);
+  case 0xf67b4034: return autocomplete_type_geo_chat_message (T);
+  case 0x0984bfcb: return autocomplete_type_bare_geo_chat_message (T);
+  case 0x315e0a53: return autocomplete_type_geo_point (T);
+  case 0xcea1f5ac: return autocomplete_type_bare_geo_point (T);
+  case 0xd0028438: return autocomplete_type_imported_contact (T);
+  case 0x2ffd7bc7: return autocomplete_type_bare_imported_contact (T);
+  case 0x770656a8: return autocomplete_type_input_app_event (T);
+  case 0x88f9a957: return autocomplete_type_bare_input_app_event (T);
+  case 0xae8e9c7b: return autocomplete_type_input_audio (T);
+  case 0x51716384: return autocomplete_type_bare_input_audio (T);
+  case 0x3a60776d: return autocomplete_type_input_chat_photo (T);
+  case 0xc59f8892: return autocomplete_type_bare_input_chat_photo (T);
+  case 0xf392b7f4: return autocomplete_type_input_contact (T);
+  case 0x0c6d480b: return autocomplete_type_bare_input_contact (T);
+  case 0x6a8963fc: return autocomplete_type_input_document (T);
+  case 0x95769c03: return autocomplete_type_bare_input_document (T);
+  case 0xf141b5e1: return autocomplete_type_input_encrypted_chat (T);
+  case 0x0ebe4a1e: return autocomplete_type_bare_input_encrypted_chat (T);
+  case 0x0b5c064f: return autocomplete_type_input_encrypted_file (T);
+  case 0xf4a3f9b0: return autocomplete_type_bare_input_encrypted_file (T);
+  case 0x0f60f9ca: return autocomplete_type_input_file (T);
+  case 0xf09f0635: return autocomplete_type_bare_input_file (T);
+  case 0xe6daa38b: return autocomplete_type_input_file_location (T);
+  case 0x19255c74: return autocomplete_type_bare_input_file_location (T);
+  case 0x74d456fa: return autocomplete_type_input_geo_chat (T);
+  case 0x8b2ba905: return autocomplete_type_bare_input_geo_chat (T);
+  case 0x17768f1f: return autocomplete_type_input_geo_point (T);
+  case 0xe88970e0: return autocomplete_type_bare_input_geo_point (T);
+  case 0x3670cf17: return autocomplete_type_input_media (T);
+  case 0xc98f30e8: return autocomplete_type_bare_input_media (T);
+  case 0x02b6911b: return autocomplete_type_input_notify_peer (T);
+  case 0xfd496ee4: return autocomplete_type_bare_input_notify_peer (T);
+  case 0x9e67268d: return autocomplete_type_input_peer (T);
+  case 0x6198d972: return autocomplete_type_bare_input_peer (T);
+  case 0x185a48ac: return autocomplete_type_input_peer_notify_events (T);
+  case 0xe7a5b753: return autocomplete_type_bare_input_peer_notify_events (T);
+  case 0x46a2ce98: return autocomplete_type_input_peer_notify_settings (T);
+  case 0xb95d3167: return autocomplete_type_bare_input_peer_notify_settings (T);
+  case 0xe74279c9: return autocomplete_type_input_photo (T);
+  case 0x18bd8636: return autocomplete_type_bare_input_photo (T);
+  case 0x7477e321: return autocomplete_type_input_photo_crop (T);
+  case 0x8b881cde: return autocomplete_type_bare_input_photo_crop (T);
+  case 0x4f96cb18: return autocomplete_type_input_privacy_key (T);
+  case 0xb06934e7: return autocomplete_type_bare_input_privacy_key (T);
+  case 0x4b815163: return autocomplete_type_input_privacy_rule (T);
+  case 0xb47eae9c: return autocomplete_type_bare_input_privacy_rule (T);
+  case 0xadfe0c6a: return autocomplete_type_input_user (T);
+  case 0x5201f395: return autocomplete_type_bare_input_user (T);
+  case 0xbb5f7a27: return autocomplete_type_input_video (T);
+  case 0x44a085d8: return autocomplete_type_bare_input_video (T);
+  case 0xa8509bda: return autocomplete_type_int (T);
+  case 0x57af6425: return autocomplete_type_bare_int (T);
+  case 0x7d36c439: return autocomplete_type_int128 (T);
+  case 0x82c93bc6: return autocomplete_type_bare_int128 (T);
+  case 0xf2c798b3: return autocomplete_type_int256 (T);
+  case 0x0d38674c: return autocomplete_type_bare_int256 (T);
+  case 0x22076cba: return autocomplete_type_long (T);
+  case 0xddf89345: return autocomplete_type_bare_long (T);
+  case 0x6b7257ff: return autocomplete_type_message (T);
+  case 0x948da800: return autocomplete_type_bare_message (T);
+  case 0xc0a8e012: return autocomplete_type_message_action (T);
+  case 0x3f571fed: return autocomplete_type_bare_message_action (T);
+  case 0x9f690be5: return autocomplete_type_message_media (T);
+  case 0x6096f41a: return autocomplete_type_bare_message_media (T);
+  case 0x59d7295b: return autocomplete_type_messages_filter (T);
+  case 0xa628d6a4: return autocomplete_type_bare_messages_filter (T);
+  case 0x8e1a1775: return autocomplete_type_nearest_dc (T);
+  case 0x71e5e88a: return autocomplete_type_bare_nearest_dc (T);
+  case 0x9fcb8237: return autocomplete_type_notify_peer (T);
+  case 0x60347dc8: return autocomplete_type_bare_notify_peer (T);
+  case 0x56730bcc: return autocomplete_type_null (T);
+  case 0xa98cf433: return autocomplete_type_bare_null (T);
+  case 0xbfa3de38: return autocomplete_type_p_q_inner_data (T);
+  case 0x405c21c7: return autocomplete_type_bare_p_q_inner_data (T);
+  case 0x276159d6: return autocomplete_type_peer (T);
+  case 0xd89ea629: return autocomplete_type_bare_peer (T);
+  case 0xc0c8d13b: return autocomplete_type_peer_notify_events (T);
+  case 0x3f372ec4: return autocomplete_type_bare_peer_notify_events (T);
+  case 0xfdf894fc: return autocomplete_type_peer_notify_settings (T);
+  case 0x02076b03: return autocomplete_type_bare_peer_notify_settings (T);
+  case 0x0184d57c: return autocomplete_type_photo (T);
+  case 0xfe7b2a83: return autocomplete_type_bare_photo (T);
+  case 0x900f60dd: return autocomplete_type_photo_size (T);
+  case 0x6ff09f22: return autocomplete_type_bare_photo_size (T);
+  case 0xbc2eab30: return autocomplete_type_privacy_key (T);
+  case 0x43d154cf: return autocomplete_type_bare_privacy_key (T);
+  case 0xa8638aec: return autocomplete_type_privacy_rule (T);
+  case 0x579c7513: return autocomplete_type_bare_privacy_rule (T);
+  case 0x05162463: return autocomplete_type_res_p_q (T);
+  case 0xfae9db9c: return autocomplete_type_bare_res_p_q (T);
+  case 0x88a65ee1: return autocomplete_type_send_message_action (T);
+  case 0x7759a11e: return autocomplete_type_bare_send_message_action (T);
+  case 0xa9230301: return autocomplete_type_server_d_h_params (T);
+  case 0x56dcfcfe: return autocomplete_type_bare_server_d_h_params (T);
+  case 0xb5890dba: return autocomplete_type_server_d_h_inner_data (T);
+  case 0x4a76f245: return autocomplete_type_bare_server_d_h_inner_data (T);
+  case 0xdb8a468f: return autocomplete_type_set_client_d_h_params_answer (T);
+  case 0x2475b970: return autocomplete_type_bare_set_client_d_h_params_answer (T);
+  case 0x12b299d4: return autocomplete_type_sticker_pack (T);
+  case 0xed4d662b: return autocomplete_type_bare_sticker_pack (T);
+  case 0xb5286e24: return autocomplete_type_string (T);
+  case 0x4ad791db: return autocomplete_type_bare_string (T);
+  case 0x7eb21a2b: return autocomplete_type_update (T);
+  case 0x814de5d4: return autocomplete_type_bare_update (T);
+  case 0x65edddf6: return autocomplete_type_updates (T);
+  case 0x9a122209: return autocomplete_type_bare_updates (T);
+  case 0x9227e4ce: return autocomplete_type_user (T);
+  case 0x6dd81b31: return autocomplete_type_bare_user (T);
+  case 0x771095da: return autocomplete_type_user_full (T);
+  case 0x88ef6a25: return autocomplete_type_bare_user_full (T);
+  case 0x9a486229: return autocomplete_type_user_profile_photo (T);
+  case 0x65b79dd6: return autocomplete_type_bare_user_profile_photo (T);
+  case 0x76de9570: return autocomplete_type_user_status (T);
+  case 0x89216a8f: return autocomplete_type_bare_user_status (T);
+  case 0x1cb5c415: return autocomplete_type_vector (T);
+  case 0xe34a3bea: return autocomplete_type_bare_vector (T);
+  case 0xf989fb39: return autocomplete_type_video (T);
+  case 0x067604c6: return autocomplete_type_bare_video (T);
+  case 0xafa14973: return autocomplete_type_wall_paper (T);
+  case 0x505eb68c: return autocomplete_type_bare_wall_paper (T);
+  case 0x24eeb8db: return autocomplete_type_account_password (T);
+  case 0xdb114724: return autocomplete_type_bare_account_password (T);
+  case 0x554abb6f: return autocomplete_type_account_privacy_rules (T);
+  case 0xaab54490: return autocomplete_type_bare_account_privacy_rules (T);
+  case 0xa4f58c4c: return autocomplete_type_account_sent_change_phone_code (T);
+  case 0x5b0a73b3: return autocomplete_type_bare_account_sent_change_phone_code (T);
+  case 0xf6b673a4: return autocomplete_type_auth_authorization (T);
+  case 0x09498c5b: return autocomplete_type_bare_auth_authorization (T);
+  case 0xe300cc3b: return autocomplete_type_auth_checked_phone (T);
+  case 0x1cff33c4: return autocomplete_type_bare_auth_checked_phone (T);
+  case 0xdf969c2d: return autocomplete_type_auth_exported_authorization (T);
+  case 0x206963d2: return autocomplete_type_bare_auth_exported_authorization (T);
+  case 0x0cc8bc16: return autocomplete_type_auth_sent_code (T);
+  case 0xf33743e9: return autocomplete_type_bare_auth_sent_code (T);
+  case 0xe97ad32a: return autocomplete_type_binlog_chat_participant (T);
+  case 0x16852cd5: return autocomplete_type_bare_binlog_chat_participant (T);
+  case 0xae7ae5ce: return autocomplete_type_binlog_file_location (T);
+  case 0x51851a31: return autocomplete_type_bare_binlog_file_location (T);
+  case 0xf034fbee: return autocomplete_type_binlog_update (T);
+  case 0x0fcb0411: return autocomplete_type_bare_binlog_update (T);
+  case 0x8c1b8fb4: return autocomplete_type_contacts_blocked (T);
+  case 0x73e4704b: return autocomplete_type_bare_contacts_blocked (T);
+  case 0xd8c02560: return autocomplete_type_contacts_contacts (T);
+  case 0x273fda9f: return autocomplete_type_bare_contacts_contacts (T);
+  case 0xaf5eb25e: return autocomplete_type_contacts_foreign_link (T);
+  case 0x50a14da1: return autocomplete_type_bare_contacts_foreign_link (T);
+  case 0x0566000e: return autocomplete_type_contacts_found (T);
+  case 0xfa99fff1: return autocomplete_type_bare_contacts_found (T);
+  case 0xad524315: return autocomplete_type_contacts_imported_contacts (T);
+  case 0x52adbcea: return autocomplete_type_bare_contacts_imported_contacts (T);
+  case 0xeccea3f5: return autocomplete_type_contacts_link (T);
+  case 0x13315c0a: return autocomplete_type_bare_contacts_link (T);
+  case 0x7c031857: return autocomplete_type_contacts_my_link (T);
+  case 0x83fce7a8: return autocomplete_type_bare_contacts_my_link (T);
+  case 0x5649dcc5: return autocomplete_type_contacts_suggested (T);
+  case 0xa9b6233a: return autocomplete_type_bare_contacts_suggested (T);
+  case 0x48feb267: return autocomplete_type_geochats_located (T);
+  case 0xb7014d98: return autocomplete_type_bare_geochats_located (T);
+  case 0x6d0a0e59: return autocomplete_type_geochats_messages (T);
+  case 0x92f5f1a6: return autocomplete_type_bare_geochats_messages (T);
+  case 0x17b1578b: return autocomplete_type_geochats_stated_message (T);
+  case 0xe84ea874: return autocomplete_type_bare_geochats_stated_message (T);
+  case 0x4ddd9627: return autocomplete_type_help_app_update (T);
+  case 0xb22269d8: return autocomplete_type_bare_help_app_update (T);
+  case 0x18cb9f78: return autocomplete_type_help_invite_text (T);
+  case 0xe7346087: return autocomplete_type_bare_help_invite_text (T);
+  case 0x17c6b5f6: return autocomplete_type_help_support (T);
+  case 0xe8394a09: return autocomplete_type_bare_help_support (T);
+  case 0xb7de36f2: return autocomplete_type_messages_affected_history (T);
+  case 0x4821c90d: return autocomplete_type_bare_messages_affected_history (T);
+  case 0x348933c1: return autocomplete_type_messages_all_stickers (T);
+  case 0xcb76cc3e: return autocomplete_type_bare_messages_all_stickers (T);
+  case 0x40e9002a: return autocomplete_type_messages_chat (T);
+  case 0xbf16ffd5: return autocomplete_type_bare_messages_chat (T);
+  case 0xe5d7d19c: return autocomplete_type_messages_chat_full (T);
+  case 0x1a282e63: return autocomplete_type_bare_messages_chat_full (T);
+  case 0x8150cbd8: return autocomplete_type_messages_chats (T);
+  case 0x7eaf3427: return autocomplete_type_bare_messages_chats (T);
+  case 0xecc058e8: return autocomplete_type_messages_dh_config (T);
+  case 0x133fa717: return autocomplete_type_bare_messages_dh_config (T);
+  case 0x645af8b3: return autocomplete_type_messages_dialogs (T);
+  case 0x9ba5074c: return autocomplete_type_bare_messages_dialogs (T);
+  case 0xc0dec25f: return autocomplete_type_messages_message (T);
+  case 0x3f213da0: return autocomplete_type_bare_messages_message (T);
+  case 0x8735e464: return autocomplete_type_messages_messages (T);
+  case 0x78ca1b9b: return autocomplete_type_bare_messages_messages (T);
+  case 0xc29c7607: return autocomplete_type_messages_sent_encrypted_message (T);
+  case 0x3d6389f8: return autocomplete_type_bare_messages_sent_encrypted_message (T);
+  case 0x382f9963: return autocomplete_type_messages_sent_message (T);
+  case 0xc7d0669c: return autocomplete_type_bare_messages_sent_message (T);
+  case 0x79d5cfa7: return autocomplete_type_messages_stated_message (T);
+  case 0x862a3058: return autocomplete_type_bare_messages_stated_message (T);
+  case 0xa8e08d7d: return autocomplete_type_messages_stated_messages (T);
+  case 0x571f7282: return autocomplete_type_bare_messages_stated_messages (T);
+  case 0x7bfa5710: return autocomplete_type_messages_stickers (T);
+  case 0x8405a8ef: return autocomplete_type_bare_messages_stickers (T);
+  case 0x20212ca8: return autocomplete_type_photos_photo (T);
+  case 0xdfded357: return autocomplete_type_bare_photos_photo (T);
+  case 0x98cf75f1: return autocomplete_type_photos_photos (T);
+  case 0x67308a0e: return autocomplete_type_bare_photos_photos (T);
+  case 0x3e2838a8: return autocomplete_type_storage_file_type (T);
+  case 0xc1d7c757: return autocomplete_type_bare_storage_file_type (T);
+  case 0xf57a2419: return autocomplete_type_updates_difference (T);
+  case 0x0a85dbe6: return autocomplete_type_bare_updates_difference (T);
+  case 0xa56c2a3e: return autocomplete_type_updates_state (T);
+  case 0x5a93d5c1: return autocomplete_type_bare_updates_state (T);
+  case 0x096a18d5: return autocomplete_type_upload_file (T);
+  case 0xf695e72a: return autocomplete_type_bare_upload_file (T);
+  default: return -1; }
+}
+struct paramed_type *store_function_any (void) {
+  if (cur_token_len != 1 || *cur_token != '(') { return 0; }
+  local_next_token ();
+  if (cur_token_len == 1 || *cur_token == '.') {
+    local_next_token ();
+    if (cur_token_len != 1 || *cur_token != '=') { return 0; }
+    local_next_token ();
+  };
+  if (cur_token_len < 0) { return 0; }
+  if (cur_token_len == 19 && !memcmp (cur_token, "account.changePhone", cur_token_len)) {
+    out_int (0x70c32edb);
+    local_next_token ();
+    struct paramed_type *P = store_function_account_change_phone ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "account.checkUsername", cur_token_len)) {
+    out_int (0x2714d86c);
+    local_next_token ();
+    struct paramed_type *P = store_function_account_check_username ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "account.deleteAccount", cur_token_len)) {
+    out_int (0x418d4e0b);
+    local_next_token ();
+    struct paramed_type *P = store_function_account_delete_account ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "account.getAccountTTL", cur_token_len)) {
+    out_int (0x08fc711d);
+    local_next_token ();
+    struct paramed_type *P = store_function_account_get_account_t_t_l ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "account.getNotifySettings", cur_token_len)) {
+    out_int (0x12b3ad31);
+    local_next_token ();
+    struct paramed_type *P = store_function_account_get_notify_settings ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "account.getPassword", cur_token_len)) {
+    out_int (0x548a30f5);
+    local_next_token ();
+    struct paramed_type *P = store_function_account_get_password ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "account.getPrivacy", cur_token_len)) {
+    out_int (0xdadbc950);
+    local_next_token ();
+    struct paramed_type *P = store_function_account_get_privacy ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "account.getWallPapers", cur_token_len)) {
+    out_int (0xc04cfac2);
+    local_next_token ();
+    struct paramed_type *P = store_function_account_get_wall_papers ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "account.registerDevice", cur_token_len)) {
+    out_int (0x446c712c);
+    local_next_token ();
+    struct paramed_type *P = store_function_account_register_device ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "account.resetNotifySettings", cur_token_len)) {
+    out_int (0xdb7e1747);
+    local_next_token ();
+    struct paramed_type *P = store_function_account_reset_notify_settings ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "account.sendChangePhoneCode", cur_token_len)) {
+    out_int (0xa407a8f4);
+    local_next_token ();
+    struct paramed_type *P = store_function_account_send_change_phone_code ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "account.setAccountTTL", cur_token_len)) {
+    out_int (0x2442485e);
+    local_next_token ();
+    struct paramed_type *P = store_function_account_set_account_t_t_l ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "account.setPassword", cur_token_len)) {
+    out_int (0xdd2a4d8f);
+    local_next_token ();
+    struct paramed_type *P = store_function_account_set_password ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "account.setPrivacy", cur_token_len)) {
+    out_int (0xc9f81ce8);
+    local_next_token ();
+    struct paramed_type *P = store_function_account_set_privacy ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "account.unregisterDevice", cur_token_len)) {
+    out_int (0x65c55b40);
+    local_next_token ();
+    struct paramed_type *P = store_function_account_unregister_device ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "account.updateNotifySettings", cur_token_len)) {
+    out_int (0x84be5b93);
+    local_next_token ();
+    struct paramed_type *P = store_function_account_update_notify_settings ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "account.updateProfile", cur_token_len)) {
+    out_int (0xf0888d68);
+    local_next_token ();
+    struct paramed_type *P = store_function_account_update_profile ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "account.updateStatus", cur_token_len)) {
+    out_int (0x6628562c);
+    local_next_token ();
+    struct paramed_type *P = store_function_account_update_status ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "account.updateUsername", cur_token_len)) {
+    out_int (0x3e0bdd7c);
+    local_next_token ();
+    struct paramed_type *P = store_function_account_update_username ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "auth.bindTempAuthKey", cur_token_len)) {
+    out_int (0xcdd42a05);
+    local_next_token ();
+    struct paramed_type *P = store_function_auth_bind_temp_auth_key ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "auth.checkPassword", cur_token_len)) {
+    out_int (0x0a63011e);
+    local_next_token ();
+    struct paramed_type *P = store_function_auth_check_password ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "auth.checkPhone", cur_token_len)) {
+    out_int (0x6fe51dfb);
+    local_next_token ();
+    struct paramed_type *P = store_function_auth_check_phone ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "auth.exportAuthorization", cur_token_len)) {
+    out_int (0xe5bfffcd);
+    local_next_token ();
+    struct paramed_type *P = store_function_auth_export_authorization ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "auth.importAuthorization", cur_token_len)) {
+    out_int (0xe3ef9613);
+    local_next_token ();
+    struct paramed_type *P = store_function_auth_import_authorization ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "auth.logOut", cur_token_len)) {
+    out_int (0x5717da40);
+    local_next_token ();
+    struct paramed_type *P = store_function_auth_log_out ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "auth.resetAuthorizations", cur_token_len)) {
+    out_int (0x9fab0d1a);
+    local_next_token ();
+    struct paramed_type *P = store_function_auth_reset_authorizations ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "auth.sendCall", cur_token_len)) {
+    out_int (0x03c51564);
+    local_next_token ();
+    struct paramed_type *P = store_function_auth_send_call ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "auth.sendCode", cur_token_len)) {
+    out_int (0x768d5f4d);
+    local_next_token ();
+    struct paramed_type *P = store_function_auth_send_code ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "auth.sendInvites", cur_token_len)) {
+    out_int (0x771c1d97);
+    local_next_token ();
+    struct paramed_type *P = store_function_auth_send_invites ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 12 && !memcmp (cur_token, "auth.sendSms", cur_token_len)) {
+    out_int (0x0da9f3e8);
+    local_next_token ();
+    struct paramed_type *P = store_function_auth_send_sms ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "auth.signIn", cur_token_len)) {
+    out_int (0xbcd51581);
+    local_next_token ();
+    struct paramed_type *P = store_function_auth_sign_in ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "auth.signUp", cur_token_len)) {
+    out_int (0x1b067634);
+    local_next_token ();
+    struct paramed_type *P = store_function_auth_sign_up ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "contacts.block", cur_token_len)) {
+    out_int (0x332b49fc);
+    local_next_token ();
+    struct paramed_type *P = store_function_contacts_block ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "contacts.deleteContact", cur_token_len)) {
+    out_int (0x8e953744);
+    local_next_token ();
+    struct paramed_type *P = store_function_contacts_delete_contact ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "contacts.deleteContacts", cur_token_len)) {
+    out_int (0x59ab389e);
+    local_next_token ();
+    struct paramed_type *P = store_function_contacts_delete_contacts ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "contacts.exportCard", cur_token_len)) {
+    out_int (0x84e53737);
+    local_next_token ();
+    struct paramed_type *P = store_function_contacts_export_card ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "contacts.getBlocked", cur_token_len)) {
+    out_int (0xf57c350f);
+    local_next_token ();
+    struct paramed_type *P = store_function_contacts_get_blocked ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "contacts.getContacts", cur_token_len)) {
+    out_int (0x22c6aa08);
+    local_next_token ();
+    struct paramed_type *P = store_function_contacts_get_contacts ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "contacts.getStatuses", cur_token_len)) {
+    out_int (0xc4a353ee);
+    local_next_token ();
+    struct paramed_type *P = store_function_contacts_get_statuses ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "contacts.getSuggested", cur_token_len)) {
+    out_int (0xcd773428);
+    local_next_token ();
+    struct paramed_type *P = store_function_contacts_get_suggested ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "contacts.importCard", cur_token_len)) {
+    out_int (0x4fe196fe);
+    local_next_token ();
+    struct paramed_type *P = store_function_contacts_import_card ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "contacts.importContacts", cur_token_len)) {
+    out_int (0xda30b32d);
+    local_next_token ();
+    struct paramed_type *P = store_function_contacts_import_contacts ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "contacts.resolveUsername", cur_token_len)) {
+    out_int (0x0bf0131c);
+    local_next_token ();
+    struct paramed_type *P = store_function_contacts_resolve_username ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "contacts.search", cur_token_len)) {
+    out_int (0x11f812d8);
+    local_next_token ();
+    struct paramed_type *P = store_function_contacts_search ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "contacts.unblock", cur_token_len)) {
+    out_int (0xe54100bd);
+    local_next_token ();
+    struct paramed_type *P = store_function_contacts_unblock ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaAudioL12", cur_token_len)) {
+    out_int (0x6080758f);
+    local_next_token ();
+    struct paramed_type *P = store_function_decrypted_message_media_audio_l12 ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaVideoL12", cur_token_len)) {
+    out_int (0x4cee6ef3);
+    local_next_token ();
+    struct paramed_type *P = store_function_decrypted_message_media_video_l12 ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "geochats.checkin", cur_token_len)) {
+    out_int (0x55b3e8fb);
+    local_next_token ();
+    struct paramed_type *P = store_function_geochats_checkin ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "geochats.createGeoChat", cur_token_len)) {
+    out_int (0x0e092e16);
+    local_next_token ();
+    struct paramed_type *P = store_function_geochats_create_geo_chat ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "geochats.editChatPhoto", cur_token_len)) {
+    out_int (0x35d81a95);
+    local_next_token ();
+    struct paramed_type *P = store_function_geochats_edit_chat_photo ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "geochats.editChatTitle", cur_token_len)) {
+    out_int (0x4c8e2273);
+    local_next_token ();
+    struct paramed_type *P = store_function_geochats_edit_chat_title ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "geochats.getFullChat", cur_token_len)) {
+    out_int (0x6722dd6f);
+    local_next_token ();
+    struct paramed_type *P = store_function_geochats_get_full_chat ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "geochats.getHistory", cur_token_len)) {
+    out_int (0xb53f7a68);
+    local_next_token ();
+    struct paramed_type *P = store_function_geochats_get_history ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "geochats.getLocated", cur_token_len)) {
+    out_int (0x7f192d8f);
+    local_next_token ();
+    struct paramed_type *P = store_function_geochats_get_located ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "geochats.getRecents", cur_token_len)) {
+    out_int (0xe1427e6f);
+    local_next_token ();
+    struct paramed_type *P = store_function_geochats_get_recents ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "geochats.search", cur_token_len)) {
+    out_int (0xcfcdc44d);
+    local_next_token ();
+    struct paramed_type *P = store_function_geochats_search ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "geochats.sendMedia", cur_token_len)) {
+    out_int (0xb8f0deff);
+    local_next_token ();
+    struct paramed_type *P = store_function_geochats_send_media ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "geochats.sendMessage", cur_token_len)) {
+    out_int (0x061b0044);
+    local_next_token ();
+    struct paramed_type *P = store_function_geochats_send_message ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "geochats.setTyping", cur_token_len)) {
+    out_int (0x08b8a729);
+    local_next_token ();
+    struct paramed_type *P = store_function_geochats_set_typing ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "help.getAppUpdate", cur_token_len)) {
+    out_int (0xc812ac7e);
+    local_next_token ();
+    struct paramed_type *P = store_function_help_get_app_update ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "help.getConfig", cur_token_len)) {
+    out_int (0xc4f9186b);
+    local_next_token ();
+    struct paramed_type *P = store_function_help_get_config ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "help.getInviteText", cur_token_len)) {
+    out_int (0xa4a95186);
+    local_next_token ();
+    struct paramed_type *P = store_function_help_get_invite_text ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "help.getNearestDc", cur_token_len)) {
+    out_int (0x1fb33026);
+    local_next_token ();
+    struct paramed_type *P = store_function_help_get_nearest_dc ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "help.getSupport", cur_token_len)) {
+    out_int (0x9cdf08cd);
+    local_next_token ();
+    struct paramed_type *P = store_function_help_get_support ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "help.saveAppLog", cur_token_len)) {
+    out_int (0x6f02f748);
+    local_next_token ();
+    struct paramed_type *P = store_function_help_save_app_log ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "initConnection", cur_token_len)) {
+    out_int (0x69796de9);
+    local_next_token ();
+    struct paramed_type *P = store_function_init_connection ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "invokeAfterMsg", cur_token_len)) {
+    out_int (0xcb9f372d);
+    local_next_token ();
+    struct paramed_type *P = store_function_invoke_after_msg ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "invokeAfterMsgs", cur_token_len)) {
+    out_int (0x3dc4b4f0);
+    local_next_token ();
+    struct paramed_type *P = store_function_invoke_after_msgs ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "invokeWithLayer", cur_token_len)) {
+    out_int (0xda9b0d0d);
+    local_next_token ();
+    struct paramed_type *P = store_function_invoke_with_layer ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "messages.acceptEncryption", cur_token_len)) {
+    out_int (0x3dbc0415);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_accept_encryption ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "messages.addChatUser", cur_token_len)) {
+    out_int (0x2ee9ee9e);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_add_chat_user ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "messages.createChat", cur_token_len)) {
+    out_int (0x419d9aee);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_create_chat ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "messages.deleteChatUser", cur_token_len)) {
+    out_int (0xc3c5cd23);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_delete_chat_user ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "messages.deleteHistory", cur_token_len)) {
+    out_int (0xf4f8fb61);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_delete_history ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "messages.deleteMessages", cur_token_len)) {
+    out_int (0x14f2dd0a);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_delete_messages ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "messages.discardEncryption", cur_token_len)) {
+    out_int (0xedd923c5);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_discard_encryption ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "messages.editChatPhoto", cur_token_len)) {
+    out_int (0xd881821d);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_edit_chat_photo ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "messages.editChatTitle", cur_token_len)) {
+    out_int (0xb4bc68b5);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_edit_chat_title ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "messages.forwardMessage", cur_token_len)) {
+    out_int (0x03f3f4f2);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_forward_message ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "messages.forwardMessages", cur_token_len)) {
+    out_int (0x514cd10f);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_forward_messages ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "messages.getAllStickers", cur_token_len)) {
+    out_int (0xaa3bc868);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_get_all_stickers ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messages.getChats", cur_token_len)) {
+    out_int (0x3c6aa187);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_get_chats ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "messages.getDhConfig", cur_token_len)) {
+    out_int (0x26cf8950);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_get_dh_config ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "messages.getDialogs", cur_token_len)) {
+    out_int (0xeccf1df6);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_get_dialogs ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "messages.getFullChat", cur_token_len)) {
+    out_int (0x3b831c66);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_get_full_chat ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "messages.getHistory", cur_token_len)) {
+    out_int (0x92a1df2f);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_get_history ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "messages.getMessages", cur_token_len)) {
+    out_int (0x4222fa74);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_get_messages ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "messages.getStickers", cur_token_len)) {
+    out_int (0xae22e045);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_get_stickers ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "messages.readEncryptedHistory", cur_token_len)) {
+    out_int (0x7f4b690a);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_read_encrypted_history ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "messages.readHistory", cur_token_len)) {
+    out_int (0xeed884c6);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_read_history ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "messages.readMessageContents", cur_token_len)) {
+    out_int (0x354b5bc2);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_read_message_contents ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "messages.receivedMessages", cur_token_len)) {
+    out_int (0x28abcb68);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_received_messages ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "messages.receivedQueue", cur_token_len)) {
+    out_int (0x55a5bb66);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_received_queue ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "messages.requestEncryption", cur_token_len)) {
+    out_int (0xf64daf43);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_request_encryption ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "messages.restoreMessages", cur_token_len)) {
+    out_int (0x395f9d7e);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_restore_messages ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "messages.search", cur_token_len)) {
+    out_int (0x07e9f2ab);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_search ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "messages.sendBroadcast", cur_token_len)) {
+    out_int (0x41bb0972);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_send_broadcast ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "messages.sendEncrypted", cur_token_len)) {
+    out_int (0xa9776773);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_send_encrypted ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "messages.sendEncryptedFile", cur_token_len)) {
+    out_int (0x9a901b66);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_send_encrypted_file ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "messages.sendEncryptedService", cur_token_len)) {
+    out_int (0x32d439a4);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_send_encrypted_service ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "messages.sendMedia", cur_token_len)) {
+    out_int (0xa3c85d76);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_send_media ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "messages.sendMessage", cur_token_len)) {
+    out_int (0x4cde0aab);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_send_message ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "messages.setEncryptedTyping", cur_token_len)) {
+    out_int (0x791451ed);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_set_encrypted_typing ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "messages.setTyping", cur_token_len)) {
+    out_int (0xa3825e50);
+    local_next_token ();
+    struct paramed_type *P = store_function_messages_set_typing ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "photos.deletePhotos", cur_token_len)) {
+    out_int (0x87cf7f2f);
+    local_next_token ();
+    struct paramed_type *P = store_function_photos_delete_photos ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "photos.getUserPhotos", cur_token_len)) {
+    out_int (0xb7ee553c);
+    local_next_token ();
+    struct paramed_type *P = store_function_photos_get_user_photos ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "photos.updateProfilePhoto", cur_token_len)) {
+    out_int (0xeef579a0);
+    local_next_token ();
+    struct paramed_type *P = store_function_photos_update_profile_photo ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "photos.uploadProfilePhoto", cur_token_len)) {
+    out_int (0xd50f9c88);
+    local_next_token ();
+    struct paramed_type *P = store_function_photos_upload_profile_photo ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "req_DH_params", cur_token_len)) {
+    out_int (0xd712e4be);
+    local_next_token ();
+    struct paramed_type *P = store_function_req_d_h_params ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 6 && !memcmp (cur_token, "req_pq", cur_token_len)) {
+    out_int (0x60469778);
+    local_next_token ();
+    struct paramed_type *P = store_function_req_pq ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "set_client_DH_params", cur_token_len)) {
+    out_int (0xf5045f1f);
+    local_next_token ();
+    struct paramed_type *P = store_function_set_client_d_h_params ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "updates.getDifference", cur_token_len)) {
+    out_int (0x0a041495);
+    local_next_token ();
+    struct paramed_type *P = store_function_updates_get_difference ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "updates.getState", cur_token_len)) {
+    out_int (0xedd4882a);
+    local_next_token ();
+    struct paramed_type *P = store_function_updates_get_state ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "upload.getFile", cur_token_len)) {
+    out_int (0xe3a6cfb5);
+    local_next_token ();
+    struct paramed_type *P = store_function_upload_get_file ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "upload.saveBigFilePart", cur_token_len)) {
+    out_int (0xde7b673d);
+    local_next_token ();
+    struct paramed_type *P = store_function_upload_save_big_file_part ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "upload.saveFilePart", cur_token_len)) {
+    out_int (0xb304a621);
+    local_next_token ();
+    struct paramed_type *P = store_function_upload_save_file_part ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "users.getFullUser", cur_token_len)) {
+    out_int (0xca30a5b1);
+    local_next_token ();
+    struct paramed_type *P = store_function_users_get_full_user ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "users.getUsers", cur_token_len)) {
+    out_int (0x0d91a548);
+    local_next_token ();
+    struct paramed_type *P = store_function_users_get_users ();
+    if (!P) { return 0; }
+    if (cur_token_len != 1 || *cur_token != ')') { return 0; }
+    local_next_token ();
+    return P;
+  }
+  return 0;
+}
+int do_autocomplete_function (const char *text, int text_len, int index, char **R) {
+  index ++;
+  if (index == 0) { if (!strncmp (text, "account.changePhone", text_len)) { *R = tstrdup ("account.changePhone"); return index; } else { index ++; }}
+  if (index == 1) { if (!strncmp (text, "account.checkUsername", text_len)) { *R = tstrdup ("account.checkUsername"); return index; } else { index ++; }}
+  if (index == 2) { if (!strncmp (text, "account.deleteAccount", text_len)) { *R = tstrdup ("account.deleteAccount"); return index; } else { index ++; }}
+  if (index == 3) { if (!strncmp (text, "account.getAccountTTL", text_len)) { *R = tstrdup ("account.getAccountTTL"); return index; } else { index ++; }}
+  if (index == 4) { if (!strncmp (text, "account.getNotifySettings", text_len)) { *R = tstrdup ("account.getNotifySettings"); return index; } else { index ++; }}
+  if (index == 5) { if (!strncmp (text, "account.getPassword", text_len)) { *R = tstrdup ("account.getPassword"); return index; } else { index ++; }}
+  if (index == 6) { if (!strncmp (text, "account.getPrivacy", text_len)) { *R = tstrdup ("account.getPrivacy"); return index; } else { index ++; }}
+  if (index == 7) { if (!strncmp (text, "account.getWallPapers", text_len)) { *R = tstrdup ("account.getWallPapers"); return index; } else { index ++; }}
+  if (index == 8) { if (!strncmp (text, "account.registerDevice", text_len)) { *R = tstrdup ("account.registerDevice"); return index; } else { index ++; }}
+  if (index == 9) { if (!strncmp (text, "account.resetNotifySettings", text_len)) { *R = tstrdup ("account.resetNotifySettings"); return index; } else { index ++; }}
+  if (index == 10) { if (!strncmp (text, "account.sendChangePhoneCode", text_len)) { *R = tstrdup ("account.sendChangePhoneCode"); return index; } else { index ++; }}
+  if (index == 11) { if (!strncmp (text, "account.setAccountTTL", text_len)) { *R = tstrdup ("account.setAccountTTL"); return index; } else { index ++; }}
+  if (index == 12) { if (!strncmp (text, "account.setPassword", text_len)) { *R = tstrdup ("account.setPassword"); return index; } else { index ++; }}
+  if (index == 13) { if (!strncmp (text, "account.setPrivacy", text_len)) { *R = tstrdup ("account.setPrivacy"); return index; } else { index ++; }}
+  if (index == 14) { if (!strncmp (text, "account.unregisterDevice", text_len)) { *R = tstrdup ("account.unregisterDevice"); return index; } else { index ++; }}
+  if (index == 15) { if (!strncmp (text, "account.updateNotifySettings", text_len)) { *R = tstrdup ("account.updateNotifySettings"); return index; } else { index ++; }}
+  if (index == 16) { if (!strncmp (text, "account.updateProfile", text_len)) { *R = tstrdup ("account.updateProfile"); return index; } else { index ++; }}
+  if (index == 17) { if (!strncmp (text, "account.updateStatus", text_len)) { *R = tstrdup ("account.updateStatus"); return index; } else { index ++; }}
+  if (index == 18) { if (!strncmp (text, "account.updateUsername", text_len)) { *R = tstrdup ("account.updateUsername"); return index; } else { index ++; }}
+  if (index == 19) { if (!strncmp (text, "auth.bindTempAuthKey", text_len)) { *R = tstrdup ("auth.bindTempAuthKey"); return index; } else { index ++; }}
+  if (index == 20) { if (!strncmp (text, "auth.checkPassword", text_len)) { *R = tstrdup ("auth.checkPassword"); return index; } else { index ++; }}
+  if (index == 21) { if (!strncmp (text, "auth.checkPhone", text_len)) { *R = tstrdup ("auth.checkPhone"); return index; } else { index ++; }}
+  if (index == 22) { if (!strncmp (text, "auth.exportAuthorization", text_len)) { *R = tstrdup ("auth.exportAuthorization"); return index; } else { index ++; }}
+  if (index == 23) { if (!strncmp (text, "auth.importAuthorization", text_len)) { *R = tstrdup ("auth.importAuthorization"); return index; } else { index ++; }}
+  if (index == 24) { if (!strncmp (text, "auth.logOut", text_len)) { *R = tstrdup ("auth.logOut"); return index; } else { index ++; }}
+  if (index == 25) { if (!strncmp (text, "auth.resetAuthorizations", text_len)) { *R = tstrdup ("auth.resetAuthorizations"); return index; } else { index ++; }}
+  if (index == 26) { if (!strncmp (text, "auth.sendCall", text_len)) { *R = tstrdup ("auth.sendCall"); return index; } else { index ++; }}
+  if (index == 27) { if (!strncmp (text, "auth.sendCode", text_len)) { *R = tstrdup ("auth.sendCode"); return index; } else { index ++; }}
+  if (index == 28) { if (!strncmp (text, "auth.sendInvites", text_len)) { *R = tstrdup ("auth.sendInvites"); return index; } else { index ++; }}
+  if (index == 29) { if (!strncmp (text, "auth.sendSms", text_len)) { *R = tstrdup ("auth.sendSms"); return index; } else { index ++; }}
+  if (index == 30) { if (!strncmp (text, "auth.signIn", text_len)) { *R = tstrdup ("auth.signIn"); return index; } else { index ++; }}
+  if (index == 31) { if (!strncmp (text, "auth.signUp", text_len)) { *R = tstrdup ("auth.signUp"); return index; } else { index ++; }}
+  if (index == 32) { if (!strncmp (text, "contacts.block", text_len)) { *R = tstrdup ("contacts.block"); return index; } else { index ++; }}
+  if (index == 33) { if (!strncmp (text, "contacts.deleteContact", text_len)) { *R = tstrdup ("contacts.deleteContact"); return index; } else { index ++; }}
+  if (index == 34) { if (!strncmp (text, "contacts.deleteContacts", text_len)) { *R = tstrdup ("contacts.deleteContacts"); return index; } else { index ++; }}
+  if (index == 35) { if (!strncmp (text, "contacts.exportCard", text_len)) { *R = tstrdup ("contacts.exportCard"); return index; } else { index ++; }}
+  if (index == 36) { if (!strncmp (text, "contacts.getBlocked", text_len)) { *R = tstrdup ("contacts.getBlocked"); return index; } else { index ++; }}
+  if (index == 37) { if (!strncmp (text, "contacts.getContacts", text_len)) { *R = tstrdup ("contacts.getContacts"); return index; } else { index ++; }}
+  if (index == 38) { if (!strncmp (text, "contacts.getStatuses", text_len)) { *R = tstrdup ("contacts.getStatuses"); return index; } else { index ++; }}
+  if (index == 39) { if (!strncmp (text, "contacts.getSuggested", text_len)) { *R = tstrdup ("contacts.getSuggested"); return index; } else { index ++; }}
+  if (index == 40) { if (!strncmp (text, "contacts.importCard", text_len)) { *R = tstrdup ("contacts.importCard"); return index; } else { index ++; }}
+  if (index == 41) { if (!strncmp (text, "contacts.importContacts", text_len)) { *R = tstrdup ("contacts.importContacts"); return index; } else { index ++; }}
+  if (index == 42) { if (!strncmp (text, "contacts.resolveUsername", text_len)) { *R = tstrdup ("contacts.resolveUsername"); return index; } else { index ++; }}
+  if (index == 43) { if (!strncmp (text, "contacts.search", text_len)) { *R = tstrdup ("contacts.search"); return index; } else { index ++; }}
+  if (index == 44) { if (!strncmp (text, "contacts.unblock", text_len)) { *R = tstrdup ("contacts.unblock"); return index; } else { index ++; }}
+  if (index == 45) { if (!strncmp (text, "decryptedMessageMediaAudioL12", text_len)) { *R = tstrdup ("decryptedMessageMediaAudioL12"); return index; } else { index ++; }}
+  if (index == 46) { if (!strncmp (text, "decryptedMessageMediaVideoL12", text_len)) { *R = tstrdup ("decryptedMessageMediaVideoL12"); return index; } else { index ++; }}
+  if (index == 47) { if (!strncmp (text, "geochats.checkin", text_len)) { *R = tstrdup ("geochats.checkin"); return index; } else { index ++; }}
+  if (index == 48) { if (!strncmp (text, "geochats.createGeoChat", text_len)) { *R = tstrdup ("geochats.createGeoChat"); return index; } else { index ++; }}
+  if (index == 49) { if (!strncmp (text, "geochats.editChatPhoto", text_len)) { *R = tstrdup ("geochats.editChatPhoto"); return index; } else { index ++; }}
+  if (index == 50) { if (!strncmp (text, "geochats.editChatTitle", text_len)) { *R = tstrdup ("geochats.editChatTitle"); return index; } else { index ++; }}
+  if (index == 51) { if (!strncmp (text, "geochats.getFullChat", text_len)) { *R = tstrdup ("geochats.getFullChat"); return index; } else { index ++; }}
+  if (index == 52) { if (!strncmp (text, "geochats.getHistory", text_len)) { *R = tstrdup ("geochats.getHistory"); return index; } else { index ++; }}
+  if (index == 53) { if (!strncmp (text, "geochats.getLocated", text_len)) { *R = tstrdup ("geochats.getLocated"); return index; } else { index ++; }}
+  if (index == 54) { if (!strncmp (text, "geochats.getRecents", text_len)) { *R = tstrdup ("geochats.getRecents"); return index; } else { index ++; }}
+  if (index == 55) { if (!strncmp (text, "geochats.search", text_len)) { *R = tstrdup ("geochats.search"); return index; } else { index ++; }}
+  if (index == 56) { if (!strncmp (text, "geochats.sendMedia", text_len)) { *R = tstrdup ("geochats.sendMedia"); return index; } else { index ++; }}
+  if (index == 57) { if (!strncmp (text, "geochats.sendMessage", text_len)) { *R = tstrdup ("geochats.sendMessage"); return index; } else { index ++; }}
+  if (index == 58) { if (!strncmp (text, "geochats.setTyping", text_len)) { *R = tstrdup ("geochats.setTyping"); return index; } else { index ++; }}
+  if (index == 59) { if (!strncmp (text, "help.getAppUpdate", text_len)) { *R = tstrdup ("help.getAppUpdate"); return index; } else { index ++; }}
+  if (index == 60) { if (!strncmp (text, "help.getConfig", text_len)) { *R = tstrdup ("help.getConfig"); return index; } else { index ++; }}
+  if (index == 61) { if (!strncmp (text, "help.getInviteText", text_len)) { *R = tstrdup ("help.getInviteText"); return index; } else { index ++; }}
+  if (index == 62) { if (!strncmp (text, "help.getNearestDc", text_len)) { *R = tstrdup ("help.getNearestDc"); return index; } else { index ++; }}
+  if (index == 63) { if (!strncmp (text, "help.getSupport", text_len)) { *R = tstrdup ("help.getSupport"); return index; } else { index ++; }}
+  if (index == 64) { if (!strncmp (text, "help.saveAppLog", text_len)) { *R = tstrdup ("help.saveAppLog"); return index; } else { index ++; }}
+  if (index == 65) { if (!strncmp (text, "initConnection", text_len)) { *R = tstrdup ("initConnection"); return index; } else { index ++; }}
+  if (index == 66) { if (!strncmp (text, "invokeAfterMsg", text_len)) { *R = tstrdup ("invokeAfterMsg"); return index; } else { index ++; }}
+  if (index == 67) { if (!strncmp (text, "invokeAfterMsgs", text_len)) { *R = tstrdup ("invokeAfterMsgs"); return index; } else { index ++; }}
+  if (index == 68) { if (!strncmp (text, "invokeWithLayer", text_len)) { *R = tstrdup ("invokeWithLayer"); return index; } else { index ++; }}
+  if (index == 69) { if (!strncmp (text, "messages.acceptEncryption", text_len)) { *R = tstrdup ("messages.acceptEncryption"); return index; } else { index ++; }}
+  if (index == 70) { if (!strncmp (text, "messages.addChatUser", text_len)) { *R = tstrdup ("messages.addChatUser"); return index; } else { index ++; }}
+  if (index == 71) { if (!strncmp (text, "messages.createChat", text_len)) { *R = tstrdup ("messages.createChat"); return index; } else { index ++; }}
+  if (index == 72) { if (!strncmp (text, "messages.deleteChatUser", text_len)) { *R = tstrdup ("messages.deleteChatUser"); return index; } else { index ++; }}
+  if (index == 73) { if (!strncmp (text, "messages.deleteHistory", text_len)) { *R = tstrdup ("messages.deleteHistory"); return index; } else { index ++; }}
+  if (index == 74) { if (!strncmp (text, "messages.deleteMessages", text_len)) { *R = tstrdup ("messages.deleteMessages"); return index; } else { index ++; }}
+  if (index == 75) { if (!strncmp (text, "messages.discardEncryption", text_len)) { *R = tstrdup ("messages.discardEncryption"); return index; } else { index ++; }}
+  if (index == 76) { if (!strncmp (text, "messages.editChatPhoto", text_len)) { *R = tstrdup ("messages.editChatPhoto"); return index; } else { index ++; }}
+  if (index == 77) { if (!strncmp (text, "messages.editChatTitle", text_len)) { *R = tstrdup ("messages.editChatTitle"); return index; } else { index ++; }}
+  if (index == 78) { if (!strncmp (text, "messages.forwardMessage", text_len)) { *R = tstrdup ("messages.forwardMessage"); return index; } else { index ++; }}
+  if (index == 79) { if (!strncmp (text, "messages.forwardMessages", text_len)) { *R = tstrdup ("messages.forwardMessages"); return index; } else { index ++; }}
+  if (index == 80) { if (!strncmp (text, "messages.getAllStickers", text_len)) { *R = tstrdup ("messages.getAllStickers"); return index; } else { index ++; }}
+  if (index == 81) { if (!strncmp (text, "messages.getChats", text_len)) { *R = tstrdup ("messages.getChats"); return index; } else { index ++; }}
+  if (index == 82) { if (!strncmp (text, "messages.getDhConfig", text_len)) { *R = tstrdup ("messages.getDhConfig"); return index; } else { index ++; }}
+  if (index == 83) { if (!strncmp (text, "messages.getDialogs", text_len)) { *R = tstrdup ("messages.getDialogs"); return index; } else { index ++; }}
+  if (index == 84) { if (!strncmp (text, "messages.getFullChat", text_len)) { *R = tstrdup ("messages.getFullChat"); return index; } else { index ++; }}
+  if (index == 85) { if (!strncmp (text, "messages.getHistory", text_len)) { *R = tstrdup ("messages.getHistory"); return index; } else { index ++; }}
+  if (index == 86) { if (!strncmp (text, "messages.getMessages", text_len)) { *R = tstrdup ("messages.getMessages"); return index; } else { index ++; }}
+  if (index == 87) { if (!strncmp (text, "messages.getStickers", text_len)) { *R = tstrdup ("messages.getStickers"); return index; } else { index ++; }}
+  if (index == 88) { if (!strncmp (text, "messages.readEncryptedHistory", text_len)) { *R = tstrdup ("messages.readEncryptedHistory"); return index; } else { index ++; }}
+  if (index == 89) { if (!strncmp (text, "messages.readHistory", text_len)) { *R = tstrdup ("messages.readHistory"); return index; } else { index ++; }}
+  if (index == 90) { if (!strncmp (text, "messages.readMessageContents", text_len)) { *R = tstrdup ("messages.readMessageContents"); return index; } else { index ++; }}
+  if (index == 91) { if (!strncmp (text, "messages.receivedMessages", text_len)) { *R = tstrdup ("messages.receivedMessages"); return index; } else { index ++; }}
+  if (index == 92) { if (!strncmp (text, "messages.receivedQueue", text_len)) { *R = tstrdup ("messages.receivedQueue"); return index; } else { index ++; }}
+  if (index == 93) { if (!strncmp (text, "messages.requestEncryption", text_len)) { *R = tstrdup ("messages.requestEncryption"); return index; } else { index ++; }}
+  if (index == 94) { if (!strncmp (text, "messages.restoreMessages", text_len)) { *R = tstrdup ("messages.restoreMessages"); return index; } else { index ++; }}
+  if (index == 95) { if (!strncmp (text, "messages.search", text_len)) { *R = tstrdup ("messages.search"); return index; } else { index ++; }}
+  if (index == 96) { if (!strncmp (text, "messages.sendBroadcast", text_len)) { *R = tstrdup ("messages.sendBroadcast"); return index; } else { index ++; }}
+  if (index == 97) { if (!strncmp (text, "messages.sendEncrypted", text_len)) { *R = tstrdup ("messages.sendEncrypted"); return index; } else { index ++; }}
+  if (index == 98) { if (!strncmp (text, "messages.sendEncryptedFile", text_len)) { *R = tstrdup ("messages.sendEncryptedFile"); return index; } else { index ++; }}
+  if (index == 99) { if (!strncmp (text, "messages.sendEncryptedService", text_len)) { *R = tstrdup ("messages.sendEncryptedService"); return index; } else { index ++; }}
+  if (index == 100) { if (!strncmp (text, "messages.sendMedia", text_len)) { *R = tstrdup ("messages.sendMedia"); return index; } else { index ++; }}
+  if (index == 101) { if (!strncmp (text, "messages.sendMessage", text_len)) { *R = tstrdup ("messages.sendMessage"); return index; } else { index ++; }}
+  if (index == 102) { if (!strncmp (text, "messages.setEncryptedTyping", text_len)) { *R = tstrdup ("messages.setEncryptedTyping"); return index; } else { index ++; }}
+  if (index == 103) { if (!strncmp (text, "messages.setTyping", text_len)) { *R = tstrdup ("messages.setTyping"); return index; } else { index ++; }}
+  if (index == 104) { if (!strncmp (text, "photos.deletePhotos", text_len)) { *R = tstrdup ("photos.deletePhotos"); return index; } else { index ++; }}
+  if (index == 105) { if (!strncmp (text, "photos.getUserPhotos", text_len)) { *R = tstrdup ("photos.getUserPhotos"); return index; } else { index ++; }}
+  if (index == 106) { if (!strncmp (text, "photos.updateProfilePhoto", text_len)) { *R = tstrdup ("photos.updateProfilePhoto"); return index; } else { index ++; }}
+  if (index == 107) { if (!strncmp (text, "photos.uploadProfilePhoto", text_len)) { *R = tstrdup ("photos.uploadProfilePhoto"); return index; } else { index ++; }}
+  if (index == 108) { if (!strncmp (text, "req_DH_params", text_len)) { *R = tstrdup ("req_DH_params"); return index; } else { index ++; }}
+  if (index == 109) { if (!strncmp (text, "req_pq", text_len)) { *R = tstrdup ("req_pq"); return index; } else { index ++; }}
+  if (index == 110) { if (!strncmp (text, "set_client_DH_params", text_len)) { *R = tstrdup ("set_client_DH_params"); return index; } else { index ++; }}
+  if (index == 111) { if (!strncmp (text, "updates.getDifference", text_len)) { *R = tstrdup ("updates.getDifference"); return index; } else { index ++; }}
+  if (index == 112) { if (!strncmp (text, "updates.getState", text_len)) { *R = tstrdup ("updates.getState"); return index; } else { index ++; }}
+  if (index == 113) { if (!strncmp (text, "upload.getFile", text_len)) { *R = tstrdup ("upload.getFile"); return index; } else { index ++; }}
+  if (index == 114) { if (!strncmp (text, "upload.saveBigFilePart", text_len)) { *R = tstrdup ("upload.saveBigFilePart"); return index; } else { index ++; }}
+  if (index == 115) { if (!strncmp (text, "upload.saveFilePart", text_len)) { *R = tstrdup ("upload.saveFilePart"); return index; } else { index ++; }}
+  if (index == 116) { if (!strncmp (text, "users.getFullUser", text_len)) { *R = tstrdup ("users.getFullUser"); return index; } else { index ++; }}
+  if (index == 117) { if (!strncmp (text, "users.getUsers", text_len)) { *R = tstrdup ("users.getUsers"); return index; } else { index ++; }}
+  *R = 0;
+  return 0;
+}
+struct paramed_type *autocomplete_function_any (void) {
+  expect_token_ptr_autocomplete ("(", 1);
+  if (cur_token_len == -3) { set_autocomplete_type (do_autocomplete_function); }
+  if (cur_token_len < 0) { return 0; }
+  if (cur_token_len == 19 && !memcmp (cur_token, "account.changePhone", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_account_change_phone ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "account.checkUsername", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_account_check_username ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "account.deleteAccount", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_account_delete_account ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "account.getAccountTTL", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_account_get_account_t_t_l ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "account.getNotifySettings", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_account_get_notify_settings ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "account.getPassword", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_account_get_password ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "account.getPrivacy", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_account_get_privacy ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "account.getWallPapers", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_account_get_wall_papers ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "account.registerDevice", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_account_register_device ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "account.resetNotifySettings", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_account_reset_notify_settings ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "account.sendChangePhoneCode", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_account_send_change_phone_code ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "account.setAccountTTL", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_account_set_account_t_t_l ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "account.setPassword", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_account_set_password ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "account.setPrivacy", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_account_set_privacy ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "account.unregisterDevice", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_account_unregister_device ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "account.updateNotifySettings", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_account_update_notify_settings ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "account.updateProfile", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_account_update_profile ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "account.updateStatus", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_account_update_status ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "account.updateUsername", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_account_update_username ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "auth.bindTempAuthKey", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_auth_bind_temp_auth_key ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "auth.checkPassword", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_auth_check_password ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "auth.checkPhone", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_auth_check_phone ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "auth.exportAuthorization", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_auth_export_authorization ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "auth.importAuthorization", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_auth_import_authorization ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "auth.logOut", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_auth_log_out ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "auth.resetAuthorizations", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_auth_reset_authorizations ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "auth.sendCall", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_auth_send_call ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "auth.sendCode", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_auth_send_code ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "auth.sendInvites", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_auth_send_invites ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 12 && !memcmp (cur_token, "auth.sendSms", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_auth_send_sms ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "auth.signIn", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_auth_sign_in ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 11 && !memcmp (cur_token, "auth.signUp", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_auth_sign_up ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "contacts.block", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_contacts_block ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "contacts.deleteContact", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_contacts_delete_contact ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "contacts.deleteContacts", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_contacts_delete_contacts ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "contacts.exportCard", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_contacts_export_card ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "contacts.getBlocked", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_contacts_get_blocked ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "contacts.getContacts", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_contacts_get_contacts ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "contacts.getStatuses", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_contacts_get_statuses ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "contacts.getSuggested", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_contacts_get_suggested ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "contacts.importCard", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_contacts_import_card ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "contacts.importContacts", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_contacts_import_contacts ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "contacts.resolveUsername", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_contacts_resolve_username ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "contacts.search", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_contacts_search ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "contacts.unblock", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_contacts_unblock ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaAudioL12", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_decrypted_message_media_audio_l12 ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "decryptedMessageMediaVideoL12", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_decrypted_message_media_video_l12 ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "geochats.checkin", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_geochats_checkin ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "geochats.createGeoChat", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_geochats_create_geo_chat ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "geochats.editChatPhoto", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_geochats_edit_chat_photo ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "geochats.editChatTitle", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_geochats_edit_chat_title ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "geochats.getFullChat", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_geochats_get_full_chat ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "geochats.getHistory", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_geochats_get_history ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "geochats.getLocated", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_geochats_get_located ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "geochats.getRecents", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_geochats_get_recents ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "geochats.search", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_geochats_search ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "geochats.sendMedia", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_geochats_send_media ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "geochats.sendMessage", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_geochats_send_message ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "geochats.setTyping", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_geochats_set_typing ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "help.getAppUpdate", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_help_get_app_update ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "help.getConfig", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_help_get_config ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "help.getInviteText", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_help_get_invite_text ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "help.getNearestDc", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_help_get_nearest_dc ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "help.getSupport", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_help_get_support ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "help.saveAppLog", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_help_save_app_log ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "initConnection", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_init_connection ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "invokeAfterMsg", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_invoke_after_msg ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "invokeAfterMsgs", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_invoke_after_msgs ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "invokeWithLayer", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_invoke_with_layer ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "messages.acceptEncryption", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_accept_encryption ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "messages.addChatUser", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_add_chat_user ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "messages.createChat", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_create_chat ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "messages.deleteChatUser", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_delete_chat_user ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "messages.deleteHistory", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_delete_history ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "messages.deleteMessages", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_delete_messages ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "messages.discardEncryption", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_discard_encryption ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "messages.editChatPhoto", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_edit_chat_photo ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "messages.editChatTitle", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_edit_chat_title ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "messages.forwardMessage", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_forward_message ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "messages.forwardMessages", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_forward_messages ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 23 && !memcmp (cur_token, "messages.getAllStickers", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_get_all_stickers ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "messages.getChats", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_get_chats ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "messages.getDhConfig", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_get_dh_config ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "messages.getDialogs", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_get_dialogs ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "messages.getFullChat", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_get_full_chat ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "messages.getHistory", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_get_history ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "messages.getMessages", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_get_messages ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "messages.getStickers", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_get_stickers ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "messages.readEncryptedHistory", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_read_encrypted_history ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "messages.readHistory", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_read_history ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 28 && !memcmp (cur_token, "messages.readMessageContents", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_read_message_contents ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "messages.receivedMessages", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_received_messages ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "messages.receivedQueue", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_received_queue ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "messages.requestEncryption", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_request_encryption ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 24 && !memcmp (cur_token, "messages.restoreMessages", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_restore_messages ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 15 && !memcmp (cur_token, "messages.search", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_search ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "messages.sendBroadcast", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_send_broadcast ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "messages.sendEncrypted", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_send_encrypted ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 26 && !memcmp (cur_token, "messages.sendEncryptedFile", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_send_encrypted_file ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 29 && !memcmp (cur_token, "messages.sendEncryptedService", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_send_encrypted_service ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "messages.sendMedia", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_send_media ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "messages.sendMessage", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_send_message ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 27 && !memcmp (cur_token, "messages.setEncryptedTyping", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_set_encrypted_typing ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 18 && !memcmp (cur_token, "messages.setTyping", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_messages_set_typing ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "photos.deletePhotos", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_photos_delete_photos ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "photos.getUserPhotos", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_photos_get_user_photos ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "photos.updateProfilePhoto", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_photos_update_profile_photo ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 25 && !memcmp (cur_token, "photos.uploadProfilePhoto", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_photos_upload_profile_photo ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 13 && !memcmp (cur_token, "req_DH_params", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_req_d_h_params ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 6 && !memcmp (cur_token, "req_pq", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_req_pq ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 20 && !memcmp (cur_token, "set_client_DH_params", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_set_client_d_h_params ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 21 && !memcmp (cur_token, "updates.getDifference", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_updates_get_difference ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 16 && !memcmp (cur_token, "updates.getState", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_updates_get_state ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "upload.getFile", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_upload_get_file ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 22 && !memcmp (cur_token, "upload.saveBigFilePart", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_upload_save_big_file_part ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 19 && !memcmp (cur_token, "upload.saveFilePart", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_upload_save_file_part ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 17 && !memcmp (cur_token, "users.getFullUser", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_users_get_full_user ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  if (cur_token_len == 14 && !memcmp (cur_token, "users.getUsers", cur_token_len)) {
+    local_next_token ();
+    struct paramed_type *P = autocomplete_function_users_get_users ();
+    if (!P) { return 0; }
+    expect_token_ptr_autocomplete (")", 1);
+    return P;
+  }
+  return 0;
+}
+
+char *tglf_extf_fetch(struct tgl_state *TLS, struct paramed_type *T)
+{
+       out_buf_pos = 0;
+       fetch_type_any(T);
+       return out_buf;
+}
+struct paramed_type *tglf_extf_store(struct tgl_state *TLS, const char *data, int data_len)
+{
+       buffer_pos =(char *)data;
+       buffer_end =(char *)(data + data_len);
+       local_next_token();
+       return store_function_any();
+}
diff --git a/tg-engine-service/mtprotocol/auto/constants.h b/tg-engine-service/mtprotocol/auto/constants.h
new file mode 100644 (file)
index 0000000..1f971d7
--- /dev/null
@@ -0,0 +1,566 @@
+/*
+    This file is part of telegram-client.
+
+    Telegram-client is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 2 of the License, or
+    (at your option) any later version.
+
+    Telegram-client is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this telegram-client.  If not, see <http://www.gnu.org/licenses/>.
+
+    Copyright Vitaly Valtman 2013
+ */
+#ifndef CONSTANTS_H
+#define CONSTANTS_H
+
+#define CODE_int 0xa8509bda
+#define CODE_long 0x22076cba
+#define CODE_double 0x2210c154
+#define CODE_string 0xb5286e24
+#define CODE_bytes 0x0ee1379f
+#define CODE_bool_false 0xbc799737
+#define CODE_bool_true 0x997275b5
+#define CODE_int128 0x7d36c439
+#define CODE_int256 0xf2c798b3
+#define CODE_vector 0x1cb5c415
+#define CODE_error 0xc4b9f9bb
+#define CODE_null 0x56730bcc
+#define CODE_input_peer_empty 0x7f3b18ea
+#define CODE_input_peer_self 0x7da07ec9
+#define CODE_input_peer_contact 0x1023dbe8
+#define CODE_input_peer_foreign 0x9b447325
+#define CODE_input_peer_chat 0x179be863
+#define CODE_input_user_empty 0xb98886cf
+#define CODE_input_user_self 0xf7c1b13f
+#define CODE_input_user_contact 0x86e94f65
+#define CODE_input_user_foreign 0x655e74ff
+#define CODE_input_phone_contact 0xf392b7f4
+#define CODE_input_file 0xf52ff27f
+#define CODE_input_media_empty 0x9664f57f
+#define CODE_input_media_uploaded_photo 0x2dc53a7d
+#define CODE_input_media_photo 0x8f2ab2ec
+#define CODE_input_media_geo_point 0xf9c44144
+#define CODE_input_media_contact 0xa6e45987
+#define CODE_input_media_uploaded_video 0x133ad6f6
+#define CODE_input_media_uploaded_thumb_video 0x9912dabf
+#define CODE_input_media_video 0x7f023ae6
+#define CODE_input_chat_photo_empty 0x1ca48f57
+#define CODE_input_chat_uploaded_photo 0x94254732
+#define CODE_input_chat_photo 0xb2e1bf08
+#define CODE_input_geo_point_empty 0xe4c123d6
+#define CODE_input_geo_point 0xf3b7acc9
+#define CODE_input_photo_empty 0x1cd7bf0d
+#define CODE_input_photo 0xfb95c6c4
+#define CODE_input_video_empty 0x5508ec75
+#define CODE_input_video 0xee579652
+#define CODE_input_file_location 0x14637196
+#define CODE_input_video_file_location 0x3d0364ec
+#define CODE_input_photo_crop_auto 0xade6b004
+#define CODE_input_photo_crop 0xd9915325
+#define CODE_input_app_event 0x770656a8
+#define CODE_peer_user 0x9db1bc6d
+#define CODE_peer_chat 0xbad0e5bb
+#define CODE_storage_file_unknown 0xaa963b05
+#define CODE_storage_file_jpeg 0x007efe0e
+#define CODE_storage_file_gif 0xcae1aadf
+#define CODE_storage_file_png 0x0a4f63c0
+#define CODE_storage_file_pdf 0xae1e508d
+#define CODE_storage_file_mp3 0x528a0677
+#define CODE_storage_file_mov 0x4b09ebbc
+#define CODE_storage_file_partial 0x40bc6f52
+#define CODE_storage_file_mp4 0xb3cea0e4
+#define CODE_storage_file_webp 0x1081464c
+#define CODE_file_location_unavailable 0x7c596b46
+#define CODE_file_location 0x53d69076
+#define CODE_user_empty 0x200250ba
+#define CODE_user_self 0x7007b451
+#define CODE_user_contact 0xcab35e18
+#define CODE_user_request 0xd9ccc4ef
+#define CODE_user_foreign 0x075cf7a8
+#define CODE_user_deleted 0xd6016d7a
+#define CODE_user_profile_photo_empty 0x4f11bae1
+#define CODE_user_profile_photo 0xd559d8c8
+#define CODE_user_status_empty 0x09d05049
+#define CODE_user_status_online 0xedb93949
+#define CODE_user_status_offline 0x008c703f
+#define CODE_chat_empty 0x9ba2d800
+#define CODE_chat 0x6e9c9bc7
+#define CODE_chat_forbidden 0xfb0ccc41
+#define CODE_chat_full 0x630e61be
+#define CODE_chat_participant 0xc8d7493e
+#define CODE_chat_participants_forbidden 0x0fd2bb8a
+#define CODE_chat_participants 0x7841b415
+#define CODE_chat_photo_empty 0x37c1011c
+#define CODE_chat_photo 0x6153276a
+#define CODE_message_empty 0x83e5de54
+#define CODE_message 0x567699b3
+#define CODE_message_forwarded 0xa367e716
+#define CODE_message_service 0x1d86f70e
+#define CODE_message_media_empty 0x3ded6320
+#define CODE_message_media_photo 0xc8c45a2a
+#define CODE_message_media_video 0xa2d24290
+#define CODE_message_media_geo 0x56e0d474
+#define CODE_message_media_contact 0x5e7d2f39
+#define CODE_message_media_unsupported 0x29632a36
+#define CODE_message_action_empty 0xb6aef7b0
+#define CODE_message_action_chat_create 0xa6638b9a
+#define CODE_message_action_chat_edit_title 0xb5a1ce5a
+#define CODE_message_action_chat_edit_photo 0x7fcb13a8
+#define CODE_message_action_chat_delete_photo 0x95e3fbef
+#define CODE_message_action_chat_add_user 0x5e3cfc4b
+#define CODE_message_action_chat_delete_user 0xb2ae9b0c
+#define CODE_dialog 0xab3a99ac
+#define CODE_photo_empty 0x2331b22d
+#define CODE_photo 0x22b56751
+#define CODE_photo_size_empty 0x0e17e23c
+#define CODE_photo_size 0x77bfb61b
+#define CODE_photo_cached_size 0xe9a734fa
+#define CODE_video_empty 0xc10658a8
+#define CODE_video 0x388fa391
+#define CODE_geo_point_empty 0x1117dd5f
+#define CODE_geo_point 0x2049d70c
+#define CODE_auth_checked_phone 0xe300cc3b
+#define CODE_auth_sent_code 0xefed51d9
+#define CODE_auth_authorization 0xf6b673a4
+#define CODE_auth_exported_authorization 0xdf969c2d
+#define CODE_input_notify_peer 0xb8bc5b0c
+#define CODE_input_notify_users 0x193b4417
+#define CODE_input_notify_chats 0x4a95e84e
+#define CODE_input_notify_all 0xa429b886
+#define CODE_input_peer_notify_events_empty 0xf03064d8
+#define CODE_input_peer_notify_events_all 0xe86a2c74
+#define CODE_input_peer_notify_settings 0x46a2ce98
+#define CODE_peer_notify_events_empty 0xadd53cb3
+#define CODE_peer_notify_events_all 0x6d1ded88
+#define CODE_peer_notify_settings_empty 0x70a68512
+#define CODE_peer_notify_settings 0x8d5e11ee
+#define CODE_wall_paper 0xccb03657
+#define CODE_user_full 0x771095da
+#define CODE_contact 0xf911c994
+#define CODE_imported_contact 0xd0028438
+#define CODE_contact_blocked 0x561bc879
+#define CODE_contact_suggested 0x3de191a1
+#define CODE_contact_status 0xd3680c61
+#define CODE_chat_located 0x3631cf4c
+#define CODE_contacts_foreign_link_unknown 0x133421f8
+#define CODE_contacts_foreign_link_requested 0xa7801f47
+#define CODE_contacts_foreign_link_mutual 0x1bea8ce1
+#define CODE_contacts_my_link_empty 0xd22a1c60
+#define CODE_contacts_my_link_requested 0x6c69efee
+#define CODE_contacts_my_link_contact 0xc240ebd9
+#define CODE_contacts_link 0xeccea3f5
+#define CODE_contacts_contacts_not_modified 0xb74ba9d2
+#define CODE_contacts_contacts 0x6f8b8cb2
+#define CODE_contacts_imported_contacts 0xad524315
+#define CODE_contacts_blocked 0x1c138d15
+#define CODE_contacts_blocked_slice 0x900802a1
+#define CODE_contacts_suggested 0x5649dcc5
+#define CODE_messages_dialogs 0x15ba6c40
+#define CODE_messages_dialogs_slice 0x71e094f3
+#define CODE_messages_messages 0x8c718e87
+#define CODE_messages_messages_slice 0x0b446ae3
+#define CODE_messages_message_empty 0x3f4e0648
+#define CODE_messages_message 0xff90c417
+#define CODE_messages_stated_messages 0x969478bb
+#define CODE_messages_stated_message 0xd07ae726
+#define CODE_messages_sent_message 0xd1f4d35c
+#define CODE_messages_chat 0x40e9002a
+#define CODE_messages_chats 0x8150cbd8
+#define CODE_messages_chat_full 0xe5d7d19c
+#define CODE_messages_affected_history 0xb7de36f2
+#define CODE_input_messages_filter_empty 0x57e2f66c
+#define CODE_input_messages_filter_photos 0x9609a51c
+#define CODE_input_messages_filter_video 0x9fc00e65
+#define CODE_input_messages_filter_photo_video 0x56e9f0e4
+#define CODE_input_messages_filter_document 0x9eddf188
+#define CODE_input_messages_filter_audio 0xcfc87522
+#define CODE_update_new_message 0x013abdb3
+#define CODE_update_message_i_d 0x4e90bfd6
+#define CODE_update_read_messages 0xc6649e31
+#define CODE_update_delete_messages 0xa92bfe26
+#define CODE_update_restore_messages 0xd15de04d
+#define CODE_update_user_typing 0x5c486927
+#define CODE_update_chat_user_typing 0x9a65ea1f
+#define CODE_update_chat_participants 0x07761198
+#define CODE_update_user_status 0x1bfbd823
+#define CODE_update_user_name 0xa7332b73
+#define CODE_update_user_photo 0x95313b0c
+#define CODE_update_contact_registered 0x2575bbb9
+#define CODE_update_contact_link 0x51a48a9a
+#define CODE_update_activation 0x6f690963
+#define CODE_update_new_authorization 0x8f06529a
+#define CODE_updates_state 0xa56c2a3e
+#define CODE_updates_difference_empty 0x5d75a138
+#define CODE_updates_difference 0x00f49ca0
+#define CODE_updates_difference_slice 0xa8fb1981
+#define CODE_updates_too_long 0xe317af7e
+#define CODE_update_short_message 0xd3f45784
+#define CODE_update_short_chat_message 0x2b2fbd4e
+#define CODE_update_short 0x78d4dec1
+#define CODE_updates_combined 0x725b04c3
+#define CODE_updates 0x74ae4240
+#define CODE_photos_photos 0x8dca6aa5
+#define CODE_photos_photos_slice 0x15051f54
+#define CODE_photos_photo 0x20212ca8
+#define CODE_upload_file 0x096a18d5
+#define CODE_dc_option 0x2ec2a43c
+#define CODE_config 0x2e54dd74
+#define CODE_nearest_dc 0x8e1a1775
+#define CODE_help_app_update 0x8987f311
+#define CODE_help_no_app_update 0xc45a6536
+#define CODE_help_invite_text 0x18cb9f78
+#define CODE_messages_stated_messages_links 0x3e74f5c6
+#define CODE_messages_stated_message_link 0xa9af2881
+#define CODE_messages_sent_message_link 0xe9db4a3f
+#define CODE_input_geo_chat 0x74d456fa
+#define CODE_input_notify_geo_chat_peer 0x4d8ddec8
+#define CODE_geo_chat 0x75eaea5a
+#define CODE_geo_chat_message_empty 0x60311a9b
+#define CODE_geo_chat_message 0x4505f8e1
+#define CODE_geo_chat_message_service 0xd34fa24e
+#define CODE_geochats_stated_message 0x17b1578b
+#define CODE_geochats_located 0x48feb267
+#define CODE_geochats_messages 0xd1526db1
+#define CODE_geochats_messages_slice 0xbc5863e8
+#define CODE_message_action_geo_chat_create 0x6f038ebc
+#define CODE_message_action_geo_chat_checkin 0x0c7d53de
+#define CODE_update_new_geo_chat_message 0x5a68e3f7
+#define CODE_wall_paper_solid 0x63117f24
+#define CODE_update_new_encrypted_message 0x12bcbd9a
+#define CODE_update_encrypted_chat_typing 0x1710f156
+#define CODE_update_encryption 0xb4a2e88d
+#define CODE_update_encrypted_messages_read 0x38fe25b7
+#define CODE_encrypted_chat_empty 0xab7ec0a0
+#define CODE_encrypted_chat_waiting 0x3bf703dc
+#define CODE_encrypted_chat_requested 0xc878527e
+#define CODE_encrypted_chat 0xfa56ce36
+#define CODE_encrypted_chat_discarded 0x13d6dd27
+#define CODE_input_encrypted_chat 0xf141b5e1
+#define CODE_encrypted_file_empty 0xc21f497e
+#define CODE_encrypted_file 0x4a70994c
+#define CODE_input_encrypted_file_empty 0x1837c364
+#define CODE_input_encrypted_file_uploaded 0x64bd0306
+#define CODE_input_encrypted_file 0x5a17b5e5
+#define CODE_input_encrypted_file_location 0xf5235d55
+#define CODE_encrypted_message 0xed18c118
+#define CODE_encrypted_message_service 0x23734b06
+#define CODE_messages_dh_config_not_modified 0xc0e24635
+#define CODE_messages_dh_config 0x2c221edd
+#define CODE_messages_sent_encrypted_message 0x560f8935
+#define CODE_messages_sent_encrypted_file 0x9493ff32
+#define CODE_input_file_big 0xfa4f0bb5
+#define CODE_input_encrypted_file_big_uploaded 0x2dc173c8
+#define CODE_update_chat_participant_add 0x3a0eeb22
+#define CODE_update_chat_participant_delete 0x6e5f8c22
+#define CODE_update_dc_options 0x8e5e9873
+#define CODE_input_media_uploaded_audio 0x4e498cab
+#define CODE_input_media_audio 0x89938781
+#define CODE_input_media_uploaded_document 0xffe76b78
+#define CODE_input_media_uploaded_thumb_document 0x41481486
+#define CODE_input_media_document 0xd184e841
+#define CODE_message_media_document 0x2fda2204
+#define CODE_message_media_audio 0xc6b68300
+#define CODE_input_audio_empty 0xd95adc84
+#define CODE_input_audio 0x77d440ff
+#define CODE_input_document_empty 0x72f0eaae
+#define CODE_input_document 0x18798952
+#define CODE_input_audio_file_location 0x74dc404d
+#define CODE_input_document_file_location 0x4e45abe9
+#define CODE_audio_empty 0x586988d8
+#define CODE_audio 0xc7ac6496
+#define CODE_document_empty 0x36f8c871
+#define CODE_document 0xf9a39f4f
+#define CODE_document_l19 0x9efc6326
+#define CODE_help_support 0x17c6b5f6
+#define CODE_notify_peer 0x9fd40bd8
+#define CODE_notify_users 0xb4c83b4c
+#define CODE_notify_chats 0xc007cec3
+#define CODE_notify_all 0x74d07c60
+#define CODE_update_user_blocked 0x80ece81a
+#define CODE_update_notify_settings 0xbec268ef
+#define CODE_auth_sent_app_code 0xe325edcf
+#define CODE_send_message_typing_action 0x16bf744e
+#define CODE_send_message_cancel_action 0xfd5ec8f5
+#define CODE_send_message_record_video_action 0xa187d66f
+#define CODE_send_message_upload_video_action 0x92042ff7
+#define CODE_send_message_record_audio_action 0xd52f73f7
+#define CODE_send_message_upload_audio_action 0xe6ac8a6f
+#define CODE_send_message_upload_photo_action 0x990a3c1a
+#define CODE_send_message_upload_document_action 0x8faee98e
+#define CODE_send_message_geo_location_action 0x176f8ba1
+#define CODE_send_message_choose_contact_action 0x628cbc6f
+#define CODE_contact_found 0xea879f95
+#define CODE_contacts_found 0x0566000e
+#define CODE_update_service_notification 0x382dd3e4
+#define CODE_user_status_recently 0xe26f42f1
+#define CODE_user_status_last_week 0x07bf09fc
+#define CODE_user_status_last_month 0x77ebc742
+#define CODE_update_privacy 0xee3b272a
+#define CODE_input_privacy_key_status_timestamp 0x4f96cb18
+#define CODE_privacy_key_status_timestamp 0xbc2eab30
+#define CODE_input_privacy_value_allow_contacts 0x0d09e07b
+#define CODE_input_privacy_value_allow_all 0x184b35ce
+#define CODE_input_privacy_value_allow_users 0x131cc67f
+#define CODE_input_privacy_value_disallow_contacts 0x0ba52007
+#define CODE_input_privacy_value_disallow_all 0xd66b66c9
+#define CODE_input_privacy_value_disallow_users 0x90110467
+#define CODE_privacy_value_allow_contacts 0xfffe1bac
+#define CODE_privacy_value_allow_all 0x65427b82
+#define CODE_privacy_value_allow_users 0x4d5bbe0c
+#define CODE_privacy_value_disallow_contacts 0xf888fa1a
+#define CODE_privacy_value_disallow_all 0x8b73e763
+#define CODE_privacy_value_disallow_users 0x0c7f49b7
+#define CODE_account_privacy_rules 0x554abb6f
+#define CODE_account_days_t_t_l 0xb8d0afdf
+#define CODE_account_sent_change_phone_code 0xa4f58c4c
+#define CODE_update_user_phone 0x12b9417b
+#define CODE_account_no_password 0x5770e7a9
+#define CODE_account_password 0x739e5f72
+#define CODE_document_attribute_image_size 0x6c37c15c
+#define CODE_document_attribute_animated 0x11b58939
+#define CODE_document_attribute_sticker 0xfb0a5727
+#define CODE_document_attribute_video 0x5910cccb
+#define CODE_document_attribute_audio 0x051448e5
+#define CODE_document_attribute_filename 0x15590068
+#define CODE_messages_stickers_not_modified 0xf1749a22
+#define CODE_messages_stickers 0x8a8ecd32
+#define CODE_sticker_pack 0x12b299d4
+#define CODE_messages_all_stickers_not_modified 0xe86602c3
+#define CODE_messages_all_stickers 0xdcef3102
+#define CODE_invoke_after_msg 0xcb9f372d
+#define CODE_invoke_after_msgs 0x3dc4b4f0
+#define CODE_auth_check_phone 0x6fe51dfb
+#define CODE_auth_send_code 0x768d5f4d
+#define CODE_auth_send_call 0x03c51564
+#define CODE_auth_sign_up 0x1b067634
+#define CODE_auth_sign_in 0xbcd51581
+#define CODE_auth_log_out 0x5717da40
+#define CODE_auth_reset_authorizations 0x9fab0d1a
+#define CODE_auth_send_invites 0x771c1d97
+#define CODE_auth_export_authorization 0xe5bfffcd
+#define CODE_auth_import_authorization 0xe3ef9613
+#define CODE_auth_bind_temp_auth_key 0xcdd42a05
+#define CODE_account_register_device 0x446c712c
+#define CODE_account_unregister_device 0x65c55b40
+#define CODE_account_update_notify_settings 0x84be5b93
+#define CODE_account_get_notify_settings 0x12b3ad31
+#define CODE_account_reset_notify_settings 0xdb7e1747
+#define CODE_account_update_profile 0xf0888d68
+#define CODE_account_update_status 0x6628562c
+#define CODE_account_get_wall_papers 0xc04cfac2
+#define CODE_users_get_users 0x0d91a548
+#define CODE_users_get_full_user 0xca30a5b1
+#define CODE_contacts_get_statuses 0xc4a353ee
+#define CODE_contacts_get_contacts 0x22c6aa08
+#define CODE_contacts_import_contacts 0xda30b32d
+#define CODE_contacts_get_suggested 0xcd773428
+#define CODE_contacts_delete_contact 0x8e953744
+#define CODE_contacts_delete_contacts 0x59ab389e
+#define CODE_contacts_block 0x332b49fc
+#define CODE_contacts_unblock 0xe54100bd
+#define CODE_contacts_get_blocked 0xf57c350f
+#define CODE_contacts_export_card 0x84e53737
+#define CODE_contacts_import_card 0x4fe196fe
+#define CODE_messages_get_messages 0x4222fa74
+#define CODE_messages_get_dialogs 0xeccf1df6
+#define CODE_messages_get_history 0x92a1df2f
+#define CODE_messages_search 0x07e9f2ab
+#define CODE_messages_read_history 0xeed884c6
+#define CODE_messages_delete_history 0xf4f8fb61
+#define CODE_messages_delete_messages 0x14f2dd0a
+#define CODE_messages_restore_messages 0x395f9d7e
+#define CODE_messages_received_messages 0x28abcb68
+#define CODE_messages_set_typing 0xa3825e50
+#define CODE_messages_send_message 0x4cde0aab
+#define CODE_messages_send_media 0xa3c85d76
+#define CODE_messages_forward_messages 0x514cd10f
+#define CODE_messages_get_chats 0x3c6aa187
+#define CODE_messages_get_full_chat 0x3b831c66
+#define CODE_messages_edit_chat_title 0xb4bc68b5
+#define CODE_messages_edit_chat_photo 0xd881821d
+#define CODE_messages_add_chat_user 0x2ee9ee9e
+#define CODE_messages_delete_chat_user 0xc3c5cd23
+#define CODE_messages_create_chat 0x419d9aee
+#define CODE_updates_get_state 0xedd4882a
+#define CODE_updates_get_difference 0x0a041495
+#define CODE_photos_update_profile_photo 0xeef579a0
+#define CODE_photos_upload_profile_photo 0xd50f9c88
+#define CODE_photos_delete_photos 0x87cf7f2f
+#define CODE_upload_save_file_part 0xb304a621
+#define CODE_upload_get_file 0xe3a6cfb5
+#define CODE_help_get_config 0xc4f9186b
+#define CODE_help_get_nearest_dc 0x1fb33026
+#define CODE_help_get_app_update 0xc812ac7e
+#define CODE_help_save_app_log 0x6f02f748
+#define CODE_help_get_invite_text 0xa4a95186
+#define CODE_photos_get_user_photos 0xb7ee553c
+#define CODE_messages_forward_message 0x03f3f4f2
+#define CODE_messages_send_broadcast 0x41bb0972
+#define CODE_geochats_get_located 0x7f192d8f
+#define CODE_geochats_get_recents 0xe1427e6f
+#define CODE_geochats_checkin 0x55b3e8fb
+#define CODE_geochats_get_full_chat 0x6722dd6f
+#define CODE_geochats_edit_chat_title 0x4c8e2273
+#define CODE_geochats_edit_chat_photo 0x35d81a95
+#define CODE_geochats_search 0xcfcdc44d
+#define CODE_geochats_get_history 0xb53f7a68
+#define CODE_geochats_set_typing 0x08b8a729
+#define CODE_geochats_send_message 0x061b0044
+#define CODE_geochats_send_media 0xb8f0deff
+#define CODE_geochats_create_geo_chat 0x0e092e16
+#define CODE_messages_get_dh_config 0x26cf8950
+#define CODE_messages_request_encryption 0xf64daf43
+#define CODE_messages_accept_encryption 0x3dbc0415
+#define CODE_messages_discard_encryption 0xedd923c5
+#define CODE_messages_set_encrypted_typing 0x791451ed
+#define CODE_messages_read_encrypted_history 0x7f4b690a
+#define CODE_messages_send_encrypted 0xa9776773
+#define CODE_messages_send_encrypted_file 0x9a901b66
+#define CODE_messages_send_encrypted_service 0x32d439a4
+#define CODE_messages_received_queue 0x55a5bb66
+#define CODE_upload_save_big_file_part 0xde7b673d
+#define CODE_init_connection 0x69796de9
+#define CODE_help_get_support 0x9cdf08cd
+#define CODE_auth_send_sms 0x0da9f3e8
+#define CODE_messages_read_message_contents 0x354b5bc2
+#define CODE_account_check_username 0x2714d86c
+#define CODE_account_update_username 0x3e0bdd7c
+#define CODE_contacts_search 0x11f812d8
+#define CODE_account_get_privacy 0xdadbc950
+#define CODE_account_set_privacy 0xc9f81ce8
+#define CODE_account_delete_account 0x418d4e0b
+#define CODE_account_get_account_t_t_l 0x08fc711d
+#define CODE_account_set_account_t_t_l 0x2442485e
+#define CODE_invoke_with_layer 0xda9b0d0d
+#define CODE_contacts_resolve_username 0x0bf0131c
+#define CODE_account_send_change_phone_code 0xa407a8f4
+#define CODE_account_change_phone 0x70c32edb
+#define CODE_account_get_password 0x548a30f5
+#define CODE_account_set_password 0xdd2a4d8f
+#define CODE_auth_check_password 0x0a63011e
+#define CODE_messages_get_stickers 0xae22e045
+#define CODE_messages_get_all_stickers 0xaa3bc868
+#define CODE_decrypted_message_layer 0x1be31789
+#define CODE_decrypted_message_l16 0x1f814f1f
+#define CODE_decrypted_message_service_l16 0xaa48327d
+#define CODE_decrypted_message 0x204d3878
+#define CODE_decrypted_message_service 0x73164160
+#define CODE_decrypted_message_media_empty 0x089f5c4a
+#define CODE_decrypted_message_media_photo 0x32798a8c
+#define CODE_decrypted_message_media_geo_point 0x35480a59
+#define CODE_decrypted_message_media_contact 0x588a0a97
+#define CODE_decrypted_message_action_set_message_t_t_l 0xa1733aec
+#define CODE_decrypted_message_media_document 0xb095434b
+#define CODE_decrypted_message_media_video 0x524a415d
+#define CODE_decrypted_message_media_audio 0x57e0a9cb
+#define CODE_decrypted_message_action_read_messages 0x0c4f40be
+#define CODE_decrypted_message_action_delete_messages 0x65614304
+#define CODE_decrypted_message_action_screenshot_messages 0x8ac1f475
+#define CODE_decrypted_message_action_flush_history 0x6719e45c
+#define CODE_decrypted_message_action_notify_layer 0xf3048883
+#define CODE_decrypted_message_action_resend 0x511110b0
+#define CODE_decrypted_message_action_typing 0xccb27641
+#define CODE_decrypted_message_action_request_key 0xf3c9611b
+#define CODE_decrypted_message_action_accept_key 0x6fe1735b
+#define CODE_decrypted_message_action_commit_key 0xec2e0b9b
+#define CODE_decrypted_message_action_abort_key 0xdd05ec6b
+#define CODE_decrypted_message_action_noop 0xa82fdd63
+#define CODE_binlog_file_location 0xae7ae5ce
+#define CODE_binlog_chat_participant 0xe97ad32a
+#define CODE_binlog_start 0x3b06de69
+#define CODE_binlog_dc_option 0x2194e0de
+#define CODE_binlog_auth_key 0xedf92e72
+#define CODE_binlog_default_dc 0x9e83dbdc
+#define CODE_binlog_our_id 0x68a870e8
+#define CODE_binlog_dc_signed 0xbd684c2d
+#define CODE_binlog_dc_salt 0x0dc9db4e
+#define CODE_binlog_set_dh_params 0xb6cb184c
+#define CODE_binlog_set_pts 0x2ca8c939
+#define CODE_binlog_set_qts 0xd95738ac
+#define CODE_binlog_set_date 0x1d0f4b52
+#define CODE_binlog_set_seq 0x6eeb2989
+#define CODE_binlog_user_add 0xe9bc8aaf
+#define CODE_binlog_user_delete 0xac55d447
+#define CODE_binlog_user_set_access_hash 0xbcb06c48
+#define CODE_binlog_user_set_phone 0x2234bf7c
+#define CODE_binlog_user_set_friend 0xb03f21f3
+#define CODE_binlog_user_set_full_photo 0x52de060e
+#define CODE_binlog_user_set_blocked 0x5df80f13
+#define CODE_binlog_user_set_real_name 0x6cf87cb0
+#define CODE_binlog_user_set_name 0x51b333ce
+#define CODE_binlog_user_set_photo 0xab5ebe28
+#define CODE_binlog_user_set_username 0x63b77689
+#define CODE_binlog_encr_chat_delete 0xee1b38e8
+#define CODE_binlog_encr_chat_requested 0xea055622
+#define CODE_binlog_encr_chat_accepted 0xce758337
+#define CODE_binlog_encr_chat_init 0xe08a8252
+#define CODE_binlog_encr_chat_create 0xe19f09af
+#define CODE_binlog_encr_chat_set_access_hash 0xabdc4560
+#define CODE_binlog_encr_chat_set_date 0x3062cc4e
+#define CODE_binlog_encr_chat_set_ttl 0xc5d087e9
+#define CODE_binlog_encr_chat_set_layer 0x633bf386
+#define CODE_binlog_encr_chat_set_state 0x808087f7
+#define CODE_binlog_encr_chat_set_key 0xc23fc5e4
+#define CODE_binlog_encr_chat_set_sha 0x65df932f
+#define CODE_binlog_encr_chat_exchange_request 0x6d5b0bcf
+#define CODE_binlog_encr_chat_exchange_accept 0x1cb792c0
+#define CODE_binlog_encr_chat_exchange_commit 0x25f33ed3
+#define CODE_binlog_encr_chat_exchange_confirm 0x3dd3a05f
+#define CODE_binlog_encr_chat_exchange_abort 0x6376966b
+#define CODE_binlog_encr_chat_update_seq 0x6dbc0700
+#define CODE_binlog_encr_chat_set_seq 0x68cd2542
+#define CODE_binlog_chat_create 0x405b6197
+#define CODE_binlog_chat_change_flags 0x909f4a52
+#define CODE_binlog_chat_set_title 0x8b56f537
+#define CODE_binlog_chat_set_photo 0x4f7a9eea
+#define CODE_binlog_chat_set_date 0xd9e3e8b3
+#define CODE_binlog_chat_set_version 0xef0c2e78
+#define CODE_binlog_chat_set_admin 0xa0ffff9b
+#define CODE_binlog_chat_set_participants 0x3edbb8fd
+#define CODE_binlog_chat_set_full_photo 0xc8c8bc1a
+#define CODE_binlog_chat_add_participant 0xaf182ee9
+#define CODE_binlog_chat_del_participant 0xa3425cf9
+#define CODE_binlog_create_message_text 0xe67e2a28
+#define CODE_binlog_send_message_text 0x1ab1eb14
+#define CODE_binlog_send_message_action_encr 0x342c8519
+#define CODE_binlog_create_message_text_fwd 0x5bbcedfc
+#define CODE_binlog_create_message_media 0x02c79324
+#define CODE_binlog_create_message_media_encr 0xee426aff
+#define CODE_binlog_create_message_media_encr_pending 0x25d9b575
+#define CODE_binlog_create_message_media_encr_sent 0xafdbc52d
+#define CODE_binlog_create_message_media_fwd 0x0bee4021
+#define CODE_binlog_create_message_service 0xf50005b5
+#define CODE_binlog_create_message_service_encr 0xf06c56fd
+#define CODE_binlog_create_message_service_fwd 0x7e970fc9
+#define CODE_binlog_message_set_unread 0x315d47a1
+#define CODE_binlog_message_set_unread_long 0x25321f01
+#define CODE_binlog_set_message_sent 0xee2b1802
+#define CODE_binlog_set_msg_id 0x3c873416
+#define CODE_binlog_delete_msg 0x97a2a28c
+#define CODE_binlog_message_set_outbound 0x5ff33762
+#define CODE_binlog_msg_seq_update 0x235bf451
+#define CODE_binlog_msg_update 0x6dd4d85f
+#define CODE_binlog_reset_authorization 0x83327955
+#define CODE_res_p_q 0x05162463
+#define CODE_server__d_h_params_fail 0x79cb045d
+#define CODE_server__d_h_params_ok 0xd0e8075c
+#define CODE_p_q_inner_data 0x83c95aec
+#define CODE_p_q_inner_data_temp 0x3c6a84d4
+#define CODE_client__d_h_inner_data 0x6643b654
+#define CODE_dh_gen_ok 0x3bcbf734
+#define CODE_dh_gen_retry 0x46dc1fb9
+#define CODE_dh_gen_fail 0xa69dae02
+#define CODE_server__d_h_inner_data 0xb5890dba
+#define CODE_req_pq 0x60469778
+#define CODE_req__d_h_params 0xd712e4be
+#define CODE_set_client__d_h_params 0xf5045f1f
+#define CODE_decrypted_message_media_video_l12 0x4cee6ef3
+#define CODE_decrypted_message_media_audio_l12 0x6080758f
+
+#endif
diff --git a/tg-engine-service/mtprotocol/binlog.c b/tg-engine-service/mtprotocol/binlog.c
new file mode 100644 (file)
index 0000000..13aa73a
--- /dev/null
@@ -0,0 +1,2620 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or(at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Vitaly Valtman 2013-2015
+ */
+
+#ifdef HAVE_CONFIG_H
+#  include "config.h"
+#endif
+
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/file.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <stdio.h>
+#include <string.h>
+#include <assert.h>
+#include <openssl/bn.h>
+#include "tgl-binlog.h"
+#include "mtproto-common.h"
+#include "mtproto-client.h"
+#include "tgl.h"
+#include "auto.h"
+#include "tgl-structures.h"
+#include <openssl/sha.h>
+
+#define BINLOG_BUFFER_SIZE (1 << 20)
+static int binlog_buffer[BINLOG_BUFFER_SIZE];
+static int *rptr;
+static int *wptr;
+//static int TLS->binlog_fd;
+static int in_replay_log; // should be used ONLY for DEBUG
+
+#define MAX_LOG_EVENT_SIZE (1 << 17)
+
+
+static void *alloc_log_event(int l)
+{
+       return binlog_buffer;
+}
+
+static long long binlog_pos;
+
+static int fetch_comb_binlog_start(struct tgl_state *TLS, void *extra)
+{
+       return 0;
+}
+
+static int fetch_comb_binlog_dc_option(struct tgl_state *TLS, void *extra)
+{
+       int id = fetch_int();
+       int l1 = prefetch_strlen();
+       assert(l1 >= 0);
+       char *name = fetch_str(l1);
+       int l2 = prefetch_strlen();
+       assert(l2 >= 0);
+       char *ip = fetch_str(l2);
+       int port = fetch_int();
+
+       vlogprintf(E_NOTICE, "DC%d '%.*s' update: %.*s:%d\n", id, l1, name, l2, ip, port);
+
+       tglmp_alloc_dc(TLS, id, tstrndup(ip, l2), port);
+       return 0;
+}
+
+static int fetch_comb_binlog_auth_key(struct tgl_state *TLS, void *extra)
+{
+       int num = fetch_int();
+       assert(num >= 0 && num <= MAX_DC_ID);
+       assert(TLS->DC_list[num]);
+       TLS->DC_list[num]->auth_key_id = fetch_long();
+       fetch_ints(TLS->DC_list[num]->auth_key, 64);
+       TLS->DC_list[num]->flags |= 1;
+       return 0;
+}
+
+static int fetch_comb_binlog_default_dc(struct tgl_state *TLS, void *extra)
+{
+       int num = fetch_int();
+       assert(num >= 0 && num <= MAX_DC_ID);
+       TLS->DC_working = TLS->DC_list[num];
+       TLS->dc_working_num = num;
+       return 0;
+}
+
+static int fetch_comb_binlog_our_id(struct tgl_state *TLS, void *extra)
+{
+       TLS->our_id = fetch_int();
+       if (TLS->callback.our_id) {
+               TLS->callback.our_id(TLS, TLS->our_id);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_dc_signed(struct tgl_state *TLS, void *extra)
+{
+       int num = fetch_int();
+       assert(num >= 0 && num <= MAX_DC_ID);
+       assert(TLS->DC_list[num]);
+       TLS->DC_list[num]->has_auth = 1;
+       return 0;
+}
+
+static int fetch_comb_binlog_dc_salt(struct tgl_state *TLS, void *extra)
+{
+       int num = fetch_int();
+       assert(num >= 0 && num <= MAX_DC_ID);
+       assert(TLS->DC_list[num]);
+       TLS->DC_list[num]->server_salt = fetch_long();
+       return 0;
+}
+
+static int fetch_comb_binlog_set_dh_params(struct tgl_state *TLS, void *extra)
+{
+       if (TLS->encr_prime) { tfree(TLS->encr_prime, 256); BN_free(TLS->encr_prime_bn); }
+       TLS->encr_root = fetch_int();
+       TLS->encr_prime = talloc(256);
+       fetch_ints(TLS->encr_prime, 64);
+       TLS->encr_prime_bn = BN_new();
+       BN_bin2bn((void *)TLS->encr_prime, 256, TLS->encr_prime_bn);
+       TLS->encr_param_version = fetch_int();
+       return 0;
+}
+
+static int fetch_comb_binlog_set_pts(struct tgl_state *TLS, void *extra)
+{
+       int new_pts = fetch_int();
+       assert(new_pts >= TLS->pts);
+       vlogprintf(E_DEBUG - 1 + 2 * in_replay_log, "pts %d=>%d\n", TLS->pts, new_pts);
+       TLS->pts = new_pts;
+       return 0;
+}
+
+static int fetch_comb_binlog_set_qts(struct tgl_state *TLS, void *extra)
+{
+       int new_qts = fetch_int();
+       assert(new_qts >= TLS->qts);
+       vlogprintf(E_DEBUG - 1 + 2 * in_replay_log, "qts %d=>%d\n", TLS->qts, new_qts);
+       TLS->qts = new_qts;
+       return 0;
+}
+
+static int fetch_comb_binlog_set_date(struct tgl_state *TLS, void *extra)
+{
+       int new_date = fetch_int();
+       if (new_date < TLS->date) { return 0; }
+       assert(new_date >= TLS->date);
+       TLS->date = new_date;
+       return 0;
+}
+
+static int fetch_comb_binlog_set_seq(struct tgl_state *TLS, void *extra)
+{
+       int new_seq = fetch_int();
+       if (new_seq < TLS->seq) {
+               vlogprintf(E_ERROR, "Error: old_seq = %d, new_seq = %d\n", TLS->seq, new_seq);
+       }
+       assert(new_seq >= TLS->seq);
+       vlogprintf(E_DEBUG - 1 + 2 * in_replay_log, "seq %d=>%d\n", TLS->seq, new_seq);
+       TLS->seq = new_seq;
+       return 0;
+}
+
+static int fetch_comb_binlog_user_add(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_id_t id = TGL_MK_USER(fetch_int());
+       tgl_peer_t *_U = tgl_peer_get(TLS, id);
+       if (!_U) {
+               _U = talloc0(sizeof(*_U));
+               _U->id = id;
+               tglp_insert_user(TLS, _U);
+       } else {
+               assert(!(_U->flags & FLAG_CREATED));
+       }
+       struct tgl_user *U =(void *)_U;
+       U->flags |= FLAG_CREATED;
+       if (tgl_get_peer_id(id) == TLS->our_id) {
+               U->flags |= FLAG_USER_SELF;
+       }
+       U->first_name = fetch_str_dup();
+       U->last_name = fetch_str_dup();
+       assert(!U->print_name);
+       U->print_name = TLS->callback.create_print_name(TLS, U->id, U->first_name, U->last_name, 0, 0);
+
+       tglp_peer_insert_name(TLS,(void *)U);
+       U->access_hash = fetch_long();
+       U->phone = fetch_str_dup();
+       if (fetch_int()) {
+               U->flags |= FLAG_USER_CONTACT;
+       }
+
+       if (TLS->callback.user_update) {
+               TLS->callback.user_update(TLS, U, TGL_UPDATE_CREATED | TGL_UPDATE_NAME | TGL_UPDATE_PHONE | TGL_UPDATE_ACCESS_HASH | TGL_UPDATE_CONTACT);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_user_delete(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_id_t id = TGL_MK_USER(fetch_int());
+       tgl_peer_t *U = tgl_peer_get(TLS, id);
+       assert(U);
+       U->flags |= FLAG_DELETED;
+
+       if (TLS->callback.user_update) {
+               TLS->callback.user_update(TLS,(void *)U, TGL_UPDATE_DELETED);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_user_set_access_hash(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_id_t id = TGL_MK_USER(fetch_int());
+       tgl_peer_t *U = tgl_peer_get(TLS, id);
+       assert(U);
+       U->user.access_hash = fetch_long();
+       if (TLS->callback.user_update) {
+               TLS->callback.user_update(TLS,(void *)U, TGL_UPDATE_ACCESS_HASH);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_user_set_phone(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_id_t id = TGL_MK_USER(fetch_int());
+       tgl_peer_t *U = tgl_peer_get(TLS, id);
+       assert(U);
+       if (U->user.phone) {
+               tfree_str(U->user.phone);
+       }
+       U->user.phone = fetch_str_dup();
+
+       if (TLS->callback.user_update) {
+               TLS->callback.user_update(TLS,(void *)U, TGL_UPDATE_PHONE);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_user_set_friend(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_id_t id = TGL_MK_USER(fetch_int());
+       tgl_peer_t *U = tgl_peer_get(TLS, id);
+       assert(U);
+       int friend = fetch_int();
+       if (friend) { U->flags |= FLAG_USER_CONTACT; }
+       else { U->flags &= ~FLAG_USER_CONTACT; }
+
+       if (TLS->callback.user_update) {
+               TLS->callback.user_update(TLS,(void *)U, TGL_UPDATE_CONTACT);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_user_set_full_photo(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_id_t id = TGL_MK_USER(fetch_int());
+       tgl_peer_t *U = tgl_peer_get(TLS, id);
+       assert(U);
+       if (U->flags & FLAG_HAS_PHOTO) {
+               tgls_free_photo(TLS, &U->user.photo);
+       }
+       tglf_fetch_photo(TLS, &U->user.photo);
+       U->flags |= FLAG_HAS_PHOTO;
+
+       if (TLS->callback.user_update) {
+               TLS->callback.user_update(TLS,(void *)U, TGL_UPDATE_PHOTO);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_user_set_blocked(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_id_t id = TGL_MK_USER(fetch_int());
+       tgl_peer_t *U = tgl_peer_get(TLS, id);
+       assert(U);
+
+       U->user.blocked = fetch_int();
+
+       if (TLS->callback.user_update) {
+               TLS->callback.user_update(TLS,(void *)U, TGL_UPDATE_BLOCKED);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_user_set_real_name(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_id_t id = TGL_MK_USER(fetch_int());
+       tgl_peer_t *U = tgl_peer_get(TLS, id);
+       assert(U);
+       assert(U->flags & FLAG_CREATED);
+
+       if (U->user.real_first_name) { tfree_str(U->user.real_first_name); }
+       if (U->user.real_last_name) { tfree_str(U->user.real_last_name); }
+       U->user.real_first_name = fetch_str_dup();
+       U->user.real_last_name = fetch_str_dup();
+
+       if (TLS->callback.user_update) {
+               TLS->callback.user_update(TLS,(void *)U, TGL_UPDATE_REAL_NAME);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_user_set_name(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_id_t id = TGL_MK_USER(fetch_int());
+       tgl_peer_t *U = tgl_peer_get(TLS, id);
+       assert(U);
+
+       if (U->user.first_name) { tfree_str(U->user.first_name); }
+       if (U->user.last_name) { tfree_str(U->user.last_name); }
+       U->user.first_name = fetch_str_dup();
+       U->user.last_name = fetch_str_dup();
+       if (U->print_name) {
+               tglp_peer_delete_name(TLS, U);
+               tfree_str(U->print_name);
+       }
+       U->print_name = TLS->callback.create_print_name(TLS, U->id, U->user.first_name, U->user.last_name, 0, 0);
+       tglp_peer_insert_name(TLS,(void *)U);
+
+       if (TLS->callback.user_update) {
+               TLS->callback.user_update(TLS,(void *)U, TGL_UPDATE_NAME);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_user_set_username(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_id_t id = TGL_MK_USER(fetch_int());
+       tgl_peer_t *U = tgl_peer_get(TLS, id);
+       assert(U);
+
+       if (U->user.username) { tfree_str(U->user.username); }
+       U->user.username = fetch_str_dup();
+
+       if (TLS->callback.user_update) {
+               TLS->callback.user_update(TLS,(void *)U, TGL_UPDATE_USERNAME);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_user_set_photo(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_id_t id = TGL_MK_USER(fetch_int());
+       tgl_peer_t *U = tgl_peer_get(TLS, id);
+       assert(U);
+
+
+       unsigned y = fetch_int();
+       if (y == CODE_user_profile_photo_empty) {
+               U->user.photo_id = 0;
+               U->user.photo_big.dc = -2;
+               U->user.photo_small.dc = -2;
+       } else {
+               assert(y == CODE_user_profile_photo);
+               U->user.photo_id = fetch_long();
+               tglf_fetch_file_location(TLS, &U->user.photo_small);
+               tglf_fetch_file_location(TLS, &U->user.photo_big);
+       }
+
+       if (TLS->callback.user_update) {
+               TLS->callback.user_update(TLS,(void *)U, TGL_UPDATE_PHOTO);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_encr_chat_delete(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_id_t id = TGL_MK_ENCR_CHAT(fetch_int());
+       tgl_peer_t *_U = tgl_peer_get(TLS, id);
+       assert(_U);
+       struct tgl_secret_chat *U = &_U->encr_chat;
+       memset(U->key, 0, sizeof(U->key));
+       U->flags |= FLAG_DELETED;
+       U->state = sc_deleted;
+       if (U->nonce) {
+               tfree_secure(U->nonce, 256);
+               U->nonce = 0;
+       }
+       if (U->g_key) {
+               tfree_secure(U->g_key, 256);
+               U->g_key = 0;
+       }
+
+       if (TLS->callback.secret_chat_update) {
+               TLS->callback.secret_chat_update(TLS, U, TGL_UPDATE_DELETED);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_encr_chat_requested(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_id_t id = TGL_MK_ENCR_CHAT(fetch_int());
+       tgl_peer_t *_U = tgl_peer_get(TLS, id);
+       if (!_U) {
+               _U = talloc0(sizeof(*_U));
+               _U->id = id;
+               tglp_insert_encrypted_chat(TLS, _U);
+       } else {
+               assert(!(_U->flags & FLAG_CREATED));
+       }
+       struct tgl_secret_chat *U =(void *)_U;
+       U->access_hash = fetch_long();
+       U->date = fetch_int();
+       U->admin_id = fetch_int();
+       U->user_id = fetch_int();
+
+       tgl_peer_t *Us = tgl_peer_get(TLS, TGL_MK_USER(U->user_id));
+       assert(!U->print_name);
+       if (Us) {
+               U->print_name = TLS->callback.create_print_name(TLS, id, "!", Us->user.first_name, Us->user.last_name, 0);
+       } else {
+               static char buf[100];
+               tsnprintf(buf, 99, "user#%d", U->user_id);
+               U->print_name = TLS->callback.create_print_name(TLS, id, "!", buf, 0, 0);
+       }
+       tglp_peer_insert_name(TLS,(void *)U);
+       U->g_key = talloc(256);
+       U->nonce = talloc(256);
+       fetch_ints(U->g_key, 64);
+       fetch_ints(U->nonce, 64);
+
+       U->flags |= FLAG_CREATED;
+       U->state = sc_request;
+
+       if (TLS->callback.secret_chat_update) {
+               TLS->callback.secret_chat_update(TLS, U, TGL_UPDATE_REQUESTED);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_encr_chat_set_access_hash(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_id_t id = TGL_MK_ENCR_CHAT(fetch_int());
+       tgl_peer_t *U = tgl_peer_get(TLS, id);
+       assert(U);
+       U->encr_chat.access_hash = fetch_long();
+       if (TLS->callback.secret_chat_update) {
+               TLS->callback.secret_chat_update(TLS,(void *)U, TGL_UPDATE_ACCESS_HASH);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_encr_chat_set_date(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_id_t id = TGL_MK_ENCR_CHAT(fetch_int());
+       tgl_peer_t *U = tgl_peer_get(TLS, id);
+       assert(U);
+       U->encr_chat.date = fetch_int();
+       return 0;
+}
+
+static int fetch_comb_binlog_encr_chat_set_ttl(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_id_t id = TGL_MK_ENCR_CHAT(fetch_int());
+       tgl_peer_t *U = tgl_peer_get(TLS, id);
+       assert(U);
+       U->encr_chat.ttl = fetch_int();
+       return 0;
+}
+
+static int fetch_comb_binlog_encr_chat_set_layer(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_id_t id = TGL_MK_ENCR_CHAT(fetch_int());
+       tgl_peer_t *U = tgl_peer_get(TLS, id);
+       assert(U);
+       U->encr_chat.layer = fetch_int();
+       return 0;
+}
+
+static int fetch_comb_binlog_encr_chat_set_state(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_id_t id = TGL_MK_ENCR_CHAT(fetch_int());
+       tgl_peer_t *U = tgl_peer_get(TLS, id);
+       assert(U);
+       U->encr_chat.state = fetch_int();
+       return 0;
+}
+
+static int fetch_comb_binlog_encr_chat_accepted(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_id_t id = TGL_MK_ENCR_CHAT(fetch_int());
+       tgl_peer_t *_U = tgl_peer_get(TLS, id);
+       assert(_U);
+       struct tgl_secret_chat *U = &_U->encr_chat;
+       if (!U->g_key) {
+               U->g_key = talloc(256);
+       }
+       if (!U->nonce) {
+               U->nonce = talloc(256);
+       }
+
+       fetch_ints(U->g_key, 64);
+       fetch_ints(U->nonce, 64);
+       U->key_fingerprint = fetch_long();
+
+       if (U->state == sc_waiting) {
+               tgl_do_create_keys_end(TLS, U);
+       }
+       U->state = sc_ok;
+
+       if (TLS->callback.secret_chat_update) {
+               TLS->callback.secret_chat_update(TLS, U, TGL_UPDATE_WORKING);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_encr_chat_set_key(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_id_t id = TGL_MK_ENCR_CHAT(fetch_int());
+       tgl_peer_t *_U = tgl_peer_get(TLS, id);
+       assert(_U);
+       struct tgl_secret_chat *U = &_U->encr_chat;
+       fetch_ints(U->key, 64);
+       U->key_fingerprint = fetch_long();
+       return 0;
+}
+
+static int fetch_comb_binlog_encr_chat_set_sha(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_id_t id = TGL_MK_ENCR_CHAT(fetch_int());
+       tgl_peer_t *_U = tgl_peer_get(TLS, id);
+       assert(_U);
+       struct tgl_secret_chat *U = &_U->encr_chat;
+       fetch_ints(U->first_key_sha, 5);
+       return 0;
+}
+
+static int fetch_comb_binlog_encr_chat_update_seq(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_id_t id = TGL_MK_ENCR_CHAT(fetch_int());
+       tgl_peer_t *_U = tgl_peer_get(TLS, id);
+       assert(_U);
+       _U->encr_chat.in_seq_no = fetch_int();
+       _U->encr_chat.last_in_seq_no = fetch_int();
+       return 0;
+}
+
+static int fetch_comb_binlog_encr_chat_set_seq(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_id_t id = TGL_MK_ENCR_CHAT(fetch_int());
+       tgl_peer_t *_U = tgl_peer_get(TLS, id);
+       assert(_U);
+       _U->encr_chat.in_seq_no = fetch_int();
+       _U->encr_chat.last_in_seq_no = fetch_int();
+       _U->encr_chat.out_seq_no = fetch_int();
+       return 0;
+}
+
+static int fetch_comb_binlog_encr_chat_init(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_t *P = talloc0(sizeof(*P));
+       P->id = TGL_MK_ENCR_CHAT(fetch_int());
+       assert(!tgl_peer_get(TLS, P->id));
+       P->encr_chat.user_id = fetch_int();
+       P->encr_chat.admin_id = TLS->our_id;
+       tglp_insert_encrypted_chat(TLS, P);
+       tgl_peer_t *Us = tgl_peer_get(TLS, TGL_MK_USER(P->encr_chat.user_id));
+       assert(Us);
+       P->print_name = TLS->callback.create_print_name(TLS, P->id, "!", Us->user.first_name, Us->user.last_name, 0);
+       tglp_peer_insert_name(TLS, P);
+
+       P->encr_chat.g_key = talloc(256);
+       fetch_ints(P->encr_chat.key, 64);
+       fetch_ints(P->encr_chat.g_key, 64);
+       P->flags |= FLAG_CREATED;
+
+       if (TLS->callback.secret_chat_update) {
+               TLS->callback.secret_chat_update(TLS,(void *)P, TGL_UPDATE_CREATED);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_encr_chat_create(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_t *P = talloc0(sizeof(*P));
+       P->id = TGL_MK_ENCR_CHAT(fetch_int());
+       assert(!tgl_peer_get(TLS, P->id));
+       P->encr_chat.user_id = fetch_int();
+       P->encr_chat.admin_id = fetch_int();
+       tglp_insert_encrypted_chat(TLS, P);
+       P->print_name = fetch_str_dup();
+       tglp_peer_insert_name(TLS, P);
+
+       P->flags |= FLAG_CREATED;
+
+       if (TLS->callback.secret_chat_update) {
+               TLS->callback.secret_chat_update(TLS,(void *)P, TGL_UPDATE_CREATED);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_chat_create(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_id_t id = TGL_MK_CHAT(fetch_int());
+       tgl_peer_t *_C = tgl_peer_get(TLS, id);
+       if (!_C) {
+               _C = talloc0(sizeof(*_C));
+               _C->id = id;
+               tglp_insert_chat(TLS, _C);
+       } else {
+               assert(!(_C->flags & FLAG_CREATED));
+       }
+       struct tgl_chat *C = &_C->chat;
+       C->flags = FLAG_CREATED | fetch_int();
+       C->title = fetch_str_dup();
+       assert(!C->print_title);
+       C->print_title = TLS->callback.create_print_name(TLS, id, C->title, 0, 0, 0);
+       tglp_peer_insert_name(TLS,(void *)C);
+       C->users_num = fetch_int();
+       C->date = fetch_int();
+       C->version = fetch_int();
+
+       fetch_data(&C->photo_big, sizeof(struct tgl_file_location));
+       fetch_data(&C->photo_small, sizeof(struct tgl_file_location));
+
+       if (TLS->callback.chat_update) {
+               TLS->callback.chat_update(TLS, C, TGL_UPDATE_CREATED | TGL_UPDATE_TITLE | TGL_UPDATE_PHOTO);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_chat_change_flags(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_t *C = tgl_peer_get(TLS, TGL_MK_CHAT(fetch_int()));
+       assert(C &&(C->flags & FLAG_CREATED));
+       C->chat.flags |= fetch_int();
+       C->chat.flags &= ~fetch_int();
+
+       if (TLS->callback.chat_update) {
+               TLS->callback.chat_update(TLS,(void *)C, TGL_UPDATE_FLAGS);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_chat_set_title(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_t *C = tgl_peer_get(TLS, TGL_MK_CHAT(fetch_int()));
+       assert(C &&(C->flags & FLAG_CREATED));
+
+       if (C->chat.title) { tfree_str(C->chat.title); }
+       C->chat.title = fetch_str_dup();
+       if (C->print_name) {
+               tglp_peer_delete_name(TLS,(void *)C);
+               tfree_str(C->print_name);
+       }
+       C->print_name = TLS->callback.create_print_name(TLS, C->id, C->chat.title, 0, 0, 0);
+       tglp_peer_insert_name(TLS,(void *)C);
+
+       if (TLS->callback.chat_update) {
+               TLS->callback.chat_update(TLS,(void *)C, TGL_UPDATE_TITLE);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_chat_set_photo(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_t *C = tgl_peer_get(TLS, TGL_MK_CHAT(fetch_int()));
+       assert(C &&(C->flags & FLAG_CREATED));
+       fetch_data(&C->photo_big, sizeof(struct tgl_file_location));
+       fetch_data(&C->photo_small, sizeof(struct tgl_file_location));
+
+       if (TLS->callback.chat_update) {
+               TLS->callback.chat_update(TLS,(void *)C, TGL_UPDATE_PHOTO);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_chat_set_date(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_t *C = tgl_peer_get(TLS, TGL_MK_CHAT(fetch_int()));
+       assert(C &&(C->flags & FLAG_CREATED));
+       C->chat.date = fetch_int();
+       return 0;
+}
+
+static int fetch_comb_binlog_chat_set_version(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_t *C = tgl_peer_get(TLS, TGL_MK_CHAT(fetch_int()));
+       assert(C &&(C->flags & FLAG_CREATED));
+       C->chat.version = fetch_int();
+       C->chat.users_num = fetch_int();
+       return 0;
+}
+
+static int fetch_comb_binlog_chat_set_admin(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_t *C = tgl_peer_get(TLS, TGL_MK_CHAT(fetch_int()));
+       assert(C &&(C->flags & FLAG_CREATED));
+       C->chat.admin_id = fetch_int();
+
+       if (TLS->callback.chat_update) {
+               TLS->callback.chat_update(TLS,(void *)C, TGL_UPDATE_ADMIN);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_chat_set_participants(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_t *C = tgl_peer_get(TLS, TGL_MK_CHAT(fetch_int()));
+       assert(C &&(C->flags & FLAG_CREATED));
+       C->chat.user_list_version = fetch_int();
+       if (C->chat.user_list) { tfree(C->chat.user_list, 12 * C->chat.user_list_size); }
+       C->chat.user_list_size = fetch_int();
+       C->chat.user_list = talloc(12 * C->chat.user_list_size);
+       fetch_ints(C->chat.user_list, 3 * C->chat.user_list_size);
+
+       if (TLS->callback.chat_update) {
+               TLS->callback.chat_update(TLS,(void *)C, TGL_UPDATE_MEMBERS);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_chat_set_full_photo(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_t *C = tgl_peer_get(TLS, TGL_MK_CHAT(fetch_int()));
+       assert(C &&(C->flags & FLAG_CREATED));
+
+       assert(C &&(C->flags & FLAG_CREATED));
+       if (C->flags & FLAG_HAS_PHOTO) {
+               tgls_free_photo(TLS, &C->chat.photo);
+       }
+       tglf_fetch_photo(TLS, &C->chat.photo);
+       C->flags |= FLAG_HAS_PHOTO;
+
+       if (TLS->callback.chat_update) {
+               TLS->callback.chat_update(TLS,(void *)C, TGL_UPDATE_PHOTO);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_chat_add_participant(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_id_t id = TGL_MK_CHAT(fetch_int());
+       tgl_peer_t *_C = tgl_peer_get(TLS, id);
+       assert(_C &&(_C->flags & FLAG_CREATED));
+       struct tgl_chat *C = &_C->chat;
+
+       int version = fetch_int();
+       int user = fetch_int();
+       int inviter = fetch_int();
+       int date = fetch_int();
+       assert(C->user_list_version < version);
+
+       int i;
+       for(i = 0; i < C->user_list_size; i++) {
+               assert(C->user_list[i].user_id != user);
+       }
+
+       C->user_list_size ++;
+       C->user_list = trealloc(C->user_list, 12 * C->user_list_size - 12, 12 * C->user_list_size);
+       C->user_list[C->user_list_size - 1].user_id = user;
+       C->user_list[C->user_list_size - 1].inviter_id = inviter;
+       C->user_list[C->user_list_size - 1].date = date;
+       C->user_list_version = version;
+
+       if (TLS->callback.chat_update) {
+               TLS->callback.chat_update(TLS, C, TGL_UPDATE_MEMBERS);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_chat_del_participant(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_id_t id = TGL_MK_CHAT(fetch_int());
+       tgl_peer_t *_C = tgl_peer_get(TLS, id);
+       assert(_C &&(_C->flags & FLAG_CREATED));
+       struct tgl_chat *C = &_C->chat;
+
+       int version = fetch_int();
+       int user = fetch_int();
+       assert(C->user_list_version < version);
+
+       int i;
+       for(i = 0; i < C->user_list_size; i++) {
+               if (C->user_list[i].user_id == user) {
+                       struct tgl_chat_user t;
+                       t = C->user_list[i];
+                       C->user_list[i] = C->user_list[C->user_list_size - 1];
+                       C->user_list[C->user_list_size - 1] = t;
+               }
+       }
+       assert(C->user_list[C->user_list_size - 1].user_id == user);
+       C->user_list_size --;
+       C->user_list = trealloc(C->user_list, 12 * C->user_list_size + 12, 12 * C->user_list_size);
+       C->user_list_version = version;
+
+       if (TLS->callback.chat_update) {
+               TLS->callback.chat_update(TLS, C, TGL_UPDATE_MEMBERS);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_create_message_text(struct tgl_state *TLS, void *extra)
+{
+       long long id = fetch_int();
+
+       struct tgl_message *M = tgl_message_get(TLS, id);
+       if (!M) {
+               M = tglm_message_alloc(TLS, id);
+       } else {
+               assert(!(M->flags & FLAG_CREATED));
+       }
+
+       M->flags |= FLAG_CREATED;
+       M->from_id = TGL_MK_USER(fetch_int());
+       int t = fetch_int();
+       if (t == TGL_PEER_ENCR_CHAT) {
+               M->flags |= FLAG_ENCRYPTED;
+       }
+
+       M->to_id = tgl_set_peer_id(t, fetch_int());
+       M->date = fetch_int();
+       M->unread = fetch_int();
+
+       int l = prefetch_strlen();
+       M->message = talloc(l + 1);
+       memcpy(M->message, fetch_str(l), l);
+       M->message[l] = 0;
+       M->message_len = l;
+
+       if (t == TGL_PEER_ENCR_CHAT) {
+               M->media.type = tgl_message_media_none;
+       } else {
+               M->media.type = tgl_message_media_none;
+       }
+
+       //M->unread = 1;
+       M->out = tgl_get_peer_id(M->from_id) == TLS->our_id;
+
+       tglm_message_insert(TLS, M);
+       return 0;
+}
+
+static int fetch_comb_binlog_send_message_text(struct tgl_state *TLS, void *extra)
+{
+       long long id = fetch_long();
+
+       struct tgl_message *M = tgl_message_get(TLS, id);
+       if (!M) {
+               M = tglm_message_alloc(TLS, id);
+       } else {
+               assert(!(M->flags & FLAG_CREATED));
+       }
+
+       M->flags |= FLAG_CREATED | FLAG_SESSION_OUTBOUND;
+       M->from_id = TGL_MK_USER(fetch_int());
+       int t = fetch_int();
+       if (t == TGL_PEER_ENCR_CHAT) {
+               M->flags |= FLAG_ENCRYPTED;
+       }
+
+       M->to_id = tgl_set_peer_id(t, fetch_int());
+       if (t == TGL_PEER_ENCR_CHAT) {
+               tgl_peer_t *P = tgl_peer_get(TLS, M->to_id);
+               if (P && P->encr_chat.layer >= 17) {
+                       P->encr_chat.out_seq_no ++;
+               }
+       }
+       M->date = fetch_int();
+
+       int l = prefetch_strlen();
+       M->message = talloc(l + 1);
+       memcpy(M->message, fetch_str(l), l);
+       M->message[l] = 0;
+       M->message_len = l;
+
+       if (t == TGL_PEER_ENCR_CHAT) {
+               M->media.type = tgl_message_media_none;
+       } else {
+               M->media.type = tgl_message_media_none;
+       }
+
+       M->unread = 1;
+       M->out = tgl_get_peer_id(M->from_id) == TLS->our_id;
+
+       tglm_message_insert(TLS, M);
+       tglm_message_insert_unsent(TLS, M);
+       M->flags |= FLAG_PENDING;
+       return 0;
+}
+
+static int fetch_comb_binlog_send_message_action_encr(struct tgl_state *TLS, void *extra)
+{
+       long long id = fetch_long();
+
+       struct tgl_message *M = tgl_message_get(TLS, id);
+       if (!M) {
+               M = tglm_message_alloc(TLS, id);
+       } else {
+               assert(!(M->flags & FLAG_CREATED));
+       }
+
+       M->flags |= FLAG_CREATED | FLAG_ENCRYPTED;
+       M->from_id = TGL_MK_USER(fetch_int());
+
+       int t = fetch_int();
+       M->to_id = tgl_set_peer_id(t, fetch_int());
+       M->date = fetch_int();
+
+       M->media.type = tgl_message_media_none;
+       tglf_fetch_message_action_encrypted(TLS, &M->action);
+
+       tgl_peer_t *P = tgl_peer_get(TLS, M->to_id);
+       if (P) {
+               if (P->encr_chat.layer >= 17) {
+                       P->encr_chat.out_seq_no ++;
+               }
+       }
+
+       M->unread = 1;
+       M->out = tgl_get_peer_id(M->from_id) == TLS->our_id;
+       M->service = 1;
+
+       tglm_message_insert(TLS, M);
+       tglm_message_insert_unsent(TLS, M);
+       M->flags |= FLAG_PENDING;
+       return 0;
+}
+
+static int fetch_comb_binlog_create_message_text_fwd(struct tgl_state *TLS, void *extra)
+{
+       long long id = fetch_int();
+
+       struct tgl_message *M = tgl_message_get(TLS, id);
+       if (!M) {
+               M = tglm_message_alloc(TLS, id);
+       } else {
+               assert(!(M->flags & FLAG_CREATED));
+       }
+
+       M->flags |= FLAG_CREATED;
+       M->from_id = TGL_MK_USER(fetch_int());
+       int t = fetch_int();
+       if (t == TGL_PEER_ENCR_CHAT) {
+               M->flags |= FLAG_ENCRYPTED;
+       }
+
+       M->to_id = tgl_set_peer_id(t, fetch_int());
+       M->date = fetch_int();
+
+       M->fwd_from_id = TGL_MK_USER(fetch_int());
+       M->fwd_date = fetch_int();
+
+       M->unread = fetch_int();
+
+       int l = prefetch_strlen();
+       M->message = talloc(l + 1);
+       memcpy(M->message, fetch_str(l), l);
+       M->message[l] = 0;
+       M->message_len = l;
+
+       if (t == TGL_PEER_ENCR_CHAT) {
+               M->media.type = tgl_message_media_none;
+       } else {
+               M->media.type = tgl_message_media_none;
+       }
+
+       //M->unread = 1;
+       M->out = tgl_get_peer_id(M->from_id) == TLS->our_id;
+
+       tglm_message_insert(TLS, M);
+
+       return 0;
+}
+
+static int fetch_comb_binlog_create_message_media(struct tgl_state *TLS, void *extra)
+{
+       int id = fetch_int();
+       struct tgl_message *M = tgl_message_get(TLS, id);
+       if (!M) {
+               M = tglm_message_alloc(TLS, id);
+       } else {
+               assert(!(M->flags & FLAG_CREATED));
+       }
+       M->flags |= FLAG_CREATED;
+       M->from_id = TGL_MK_USER(fetch_int());
+       int t = fetch_int();
+       M->to_id = tgl_set_peer_id(t, fetch_int());
+       M->date = fetch_int();
+
+       M->unread = fetch_int();
+
+       int l = prefetch_strlen();
+       M->message = talloc(l + 1);
+       memcpy(M->message, fetch_str(l), l);
+       M->message[l] = 0;
+       M->message_len = l;
+
+       tglf_fetch_message_media(TLS, &M->media);
+       //M->unread = 1;
+       M->out = tgl_get_peer_id(M->from_id) == TLS->our_id;
+
+       tglm_message_insert(TLS, M);
+       return 0;
+}
+
+static int fetch_comb_binlog_create_message_media_encr(struct tgl_state *TLS, void *extra)
+{
+       long long id = fetch_long();
+       struct tgl_message *M = tgl_message_get(TLS, id);
+       if (!M) {
+               M = tglm_message_alloc(TLS, id);
+       } else {
+               assert(!(M->flags & FLAG_CREATED));
+       }
+       M->flags |= FLAG_CREATED | FLAG_ENCRYPTED;
+       M->from_id = TGL_MK_USER(fetch_int());
+       int t = fetch_int();
+       M->to_id = tgl_set_peer_id(t, fetch_int());
+       M->date = fetch_int();
+
+       int l = prefetch_strlen();
+       M->message = talloc(l + 1);
+       memcpy(M->message, fetch_str(l), l);
+       M->message[l] = 0;
+       M->message_len = l;
+
+       tglf_fetch_message_media_encrypted(TLS, &M->media);
+       tglf_fetch_encrypted_message_file(TLS, &M->media);
+       M->unread = 1;
+       M->out = tgl_get_peer_id(M->from_id) == TLS->our_id;
+
+       tglm_message_insert(TLS, M);
+       return 0;
+}
+
+static int fetch_comb_binlog_create_message_media_encr_pending(struct tgl_state *TLS, void *extra)
+{
+       long long id = fetch_long();
+       struct tgl_message *M = tgl_message_get(TLS, id);
+       if (!M) {
+               M = tglm_message_alloc(TLS, id);
+       } else {
+               assert(!(M->flags & FLAG_CREATED));
+       }
+       M->flags |= FLAG_CREATED | FLAG_ENCRYPTED;
+       M->from_id = TGL_MK_USER(fetch_int());
+       int t = fetch_int();
+       M->to_id = tgl_set_peer_id(t, fetch_int());
+       M->date = fetch_int();
+
+       tgl_peer_t *P = tgl_peer_get(TLS, M->to_id);
+       if (P) {
+               if (P->encr_chat.layer >= 17) {
+                       P->encr_chat.out_seq_no ++;
+               }
+       }
+
+       int l = prefetch_strlen();
+       M->message = talloc(l + 1);
+       memcpy(M->message, fetch_str(l), l);
+       M->message[l] = 0;
+       M->message_len = l;
+
+       tglf_fetch_message_media_encrypted(TLS, &M->media);
+       M->unread = 1;
+       M->out = tgl_get_peer_id(M->from_id) == TLS->our_id;
+
+       tglm_message_insert(TLS, M);
+       tglm_message_insert_unsent(TLS, M);
+       M->flags |= FLAG_PENDING;
+       return 0;
+}
+
+static int fetch_comb_binlog_create_message_media_encr_sent(struct tgl_state *TLS, void *extra)
+{
+       long long id = fetch_long();
+       struct tgl_message *M = tgl_message_get(TLS, id);
+       assert(M &&(M->flags & FLAG_CREATED));
+       tglf_fetch_encrypted_message_file(TLS, &M->media);
+       tglm_message_remove_unsent(TLS, M);
+       M->flags &= ~FLAG_PENDING;
+       return 0;
+}
+
+static int fetch_comb_binlog_create_message_media_fwd(struct tgl_state *TLS, void *extra)
+{
+       int id = fetch_int();
+       struct tgl_message *M = tgl_message_get(TLS, id);
+       if (!M) {
+               M = tglm_message_alloc(TLS, id);
+       } else {
+               assert(!(M->flags & FLAG_CREATED));
+       }
+       M->flags |= FLAG_CREATED;
+       M->from_id = TGL_MK_USER(fetch_int());
+       int t = fetch_int();
+       M->to_id = tgl_set_peer_id(t, fetch_int());
+       M->date = fetch_int();
+
+       M->fwd_from_id = TGL_MK_USER(fetch_int());
+       M->fwd_date = fetch_int();
+
+       M->unread = fetch_int();
+
+       int l = prefetch_strlen();
+       M->message = talloc(l + 1);
+       memcpy(M->message, fetch_str(l), l);
+       M->message[l] = 0;
+       M->message_len = l;
+
+       tglf_fetch_message_media(TLS, &M->media);
+       //M->unread = 1;
+       M->out = tgl_get_peer_id(M->from_id) == TLS->our_id;
+
+       tglm_message_insert(TLS, M);
+       return 0;
+}
+
+static int fetch_comb_binlog_create_message_service(struct tgl_state *TLS, void *extra)
+{
+       int id = fetch_int();
+       struct tgl_message *M = tgl_message_get(TLS, id);
+       if (!M) {
+               M = tglm_message_alloc(TLS, id);
+       } else {
+               assert(!(M->flags & FLAG_CREATED));
+       }
+       M->flags |= FLAG_CREATED;
+       M->from_id = TGL_MK_USER(fetch_int());
+       int t = fetch_int();
+       M->to_id = tgl_set_peer_id(t, fetch_int());
+       M->date = fetch_int();
+
+       M->unread = fetch_int();
+
+       tglf_fetch_message_action(TLS, &M->action);
+       //M->unread = 1;
+       M->out = tgl_get_peer_id(M->from_id) == TLS->our_id;
+       M->service = 1;
+
+       tglm_message_insert(TLS, M);
+       return 0;
+}
+
+static int fetch_comb_binlog_create_message_service_encr(struct tgl_state *TLS, void *extra)
+{
+       long long id = fetch_long();
+       struct tgl_message *M = tgl_message_get(TLS, id);
+       if (!M) {
+               M = tglm_message_alloc(TLS, id);
+       } else {
+               assert(!(M->flags & FLAG_CREATED));
+       }
+       M->flags |= FLAG_CREATED | FLAG_ENCRYPTED;
+       M->from_id = TGL_MK_USER(fetch_int());
+       int t = fetch_int();
+       assert(t == TGL_PEER_ENCR_CHAT);
+       M->to_id = tgl_set_peer_id(t, fetch_int());
+       M->date = fetch_int();
+
+       struct tgl_secret_chat *E =(void *)tgl_peer_get(TLS, M->to_id);
+       assert(E);
+
+       tglf_fetch_message_action_encrypted(TLS, &M->action);
+       M->unread = 1;
+       M->out = tgl_get_peer_id(M->from_id) == TLS->our_id;
+       M->service = 1;
+
+       if (!M->out && M->action.type == tgl_message_action_notify_layer) {
+               E->layer = M->action.layer;
+       }
+
+       tglm_message_insert(TLS, M);
+       return 0;
+}
+
+static int fetch_comb_binlog_create_message_service_fwd(struct tgl_state *TLS, void *extra)
+{
+       int id = fetch_int();
+       struct tgl_message *M = tgl_message_get(TLS, id);
+       if (!M) {
+               M = tglm_message_alloc(TLS, id);
+       } else {
+               assert(!(M->flags & FLAG_CREATED));
+       }
+       M->flags |= FLAG_CREATED;
+       M->from_id = TGL_MK_USER(fetch_int());
+       int t = fetch_int();
+       M->to_id = tgl_set_peer_id(t, fetch_int());
+       M->date = fetch_int();
+
+       M->fwd_from_id = TGL_MK_USER(fetch_int());
+       M->fwd_date = fetch_int();
+
+       M->unread = fetch_int();
+
+       tglf_fetch_message_action(TLS, &M->action);
+       //M->unread = 1;
+       M->out = tgl_get_peer_id(M->from_id) == TLS->our_id;
+       M->service = 1;
+
+       tglm_message_insert(TLS, M);
+       return 0;
+}
+
+static int fetch_comb_binlog_message_set_unread_long(struct tgl_state *TLS, void *extra)
+{
+       struct tgl_message *M = tgl_message_get(TLS, fetch_long());
+       assert(M);
+       if (M->unread) {
+               M->unread = 0;
+               if (TLS->callback.marked_read) {
+                       TLS->callback.marked_read(TLS, 1, &M);
+               }
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_message_set_unread(struct tgl_state *TLS, void *extra)
+{
+       struct tgl_message *M = tgl_message_get(TLS, fetch_int());
+       assert(M);
+       if (M->unread) {
+               M->unread = 0;
+               if (TLS->callback.marked_read) {
+                       TLS->callback.marked_read(TLS, 1, &M);
+               }
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_set_message_sent(struct tgl_state *TLS, void *extra)
+{
+       struct tgl_message *M = tgl_message_get(TLS, fetch_long());
+       assert(M);
+       tglm_message_remove_unsent(TLS, M);
+       M->flags &= ~FLAG_PENDING;
+       return 0;
+}
+
+static int fetch_comb_binlog_set_msg_id(struct tgl_state *TLS, void *extra)
+{
+       struct tgl_message *M = tgl_message_get(TLS, fetch_long());
+       assert(M);
+       if (M->flags & FLAG_PENDING) {
+               tglm_message_remove_unsent(TLS, M);
+               M->flags &= ~FLAG_PENDING;
+       }
+       tglm_message_remove_tree(TLS, M);
+       tglm_message_del_peer(TLS, M);
+       M->id = fetch_int();
+       if (tgl_message_get(TLS, M->id)) {
+               tgls_free_message(TLS, M);
+       } else {
+               tglm_message_insert_tree(TLS, M);
+               tglm_message_add_peer(TLS, M);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_message_set_outbound(struct tgl_state *TLS, void *extra)
+{
+       struct tgl_message *M = tgl_message_get(TLS, fetch_long());
+       assert(M);
+       M->flags |= FLAG_SESSION_OUTBOUND;
+       return 0;
+}
+
+static int fetch_comb_binlog_delete_msg(struct tgl_state *TLS, void *extra)
+{
+       struct tgl_message *M = tgl_message_get(TLS, fetch_long());
+       assert(M);
+       if (M->flags & FLAG_PENDING) {
+               tglm_message_remove_unsent(TLS, M);
+               M->flags &= ~FLAG_PENDING;
+       }
+       tglm_message_remove_tree(TLS, M);
+       tglm_message_del_peer(TLS, M);
+       tglm_message_del_use(TLS, M);
+       tgls_free_message(TLS, M);
+       return 0;
+}
+
+static int fetch_comb_binlog_msg_seq_update(struct tgl_state *TLS, void *extra)
+{
+       struct tgl_message *M = tgl_message_get(TLS, fetch_long());
+       assert(M);
+       TLS->seq ++;
+       vlogprintf(E_DEBUG - 1 + 2 * in_replay_log, "seq %d=>%d\n", TLS->seq - 1, TLS->seq);
+
+       if (!(M->flags & FLAG_ENCRYPTED)) {
+               if (TLS->max_msg_id < M->id) {
+                       TLS->max_msg_id = M->id;
+               }
+       }
+
+       if (TLS->callback.msg_receive) {
+               TLS->callback.msg_receive(TLS, M);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_msg_update(struct tgl_state *TLS, void *extra)
+{
+       struct tgl_message *M = tgl_message_get(TLS, fetch_long());
+       if (!M) { return 0; }
+       assert(M);
+
+       if (!(M->flags & FLAG_ENCRYPTED)) {
+               if (TLS->max_msg_id < M->id) {
+                       TLS->max_msg_id = M->id;
+               }
+       }
+
+       if (TLS->callback.msg_receive) {
+               TLS->callback.msg_receive(TLS, M);
+       }
+       return 0;
+}
+
+static int fetch_comb_binlog_reset_authorization(struct tgl_state *TLS, void *extra)
+{
+       int i;
+       for(i = 0; i <= TLS->max_dc_num; i++) if (TLS->DC_list[i]) {
+               struct tgl_dc *D = TLS->DC_list[i];
+               D->flags = 0;
+               D->state = st_init;
+               D->auth_key_id = D->temp_auth_key_id = 0;
+               D->has_auth = 0;
+       }
+       TLS->seq = 0;
+       TLS->qts = 0;
+       return 0;
+}
+
+static int fetch_comb_binlog_encr_chat_exchange_request(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_t *P = tgl_peer_get(TLS, TGL_MK_ENCR_CHAT(fetch_int()));
+       assert(P);
+       P->encr_chat.exchange_id = fetch_long();
+       fetch_ints(P->encr_chat.exchange_key, 64);
+       P->encr_chat.exchange_state = tgl_sce_requested;
+       return 0;
+}
+
+static int fetch_comb_binlog_encr_chat_exchange_accept(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_t *P = tgl_peer_get(TLS, TGL_MK_ENCR_CHAT(fetch_int()));
+       assert(P);
+       P->encr_chat.exchange_id = fetch_long();
+       fetch_ints(P->encr_chat.exchange_key, 64);
+       P->encr_chat.exchange_state = tgl_sce_accepted;
+
+       static unsigned char sha_buffer[20];
+       SHA1((unsigned char *)P->encr_chat.exchange_key, 256, sha_buffer);
+
+       P->encr_chat.exchange_key_fingerprint = * (long long *)(sha_buffer + 12);
+       return 0;
+}
+
+static int fetch_comb_binlog_encr_chat_exchange_commit(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_t *P = tgl_peer_get(TLS, TGL_MK_ENCR_CHAT(fetch_int()));
+       assert(P);
+
+       memcpy(P->encr_chat.exchange_key, P->encr_chat.key, 256);
+       P->encr_chat.exchange_key_fingerprint = P->encr_chat.key_fingerprint;
+
+       fetch_ints(P->encr_chat.key, 64);
+       P->encr_chat.exchange_state = tgl_sce_committed;
+
+       static unsigned char sha_buffer[20];
+       SHA1((unsigned char *)P->encr_chat.key, 256, sha_buffer);
+
+       P->encr_chat.key_fingerprint = * (long long *)(sha_buffer + 12);
+       return 0;
+}
+
+static int fetch_comb_binlog_encr_chat_exchange_confirm(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_t *P = tgl_peer_get(TLS, TGL_MK_ENCR_CHAT(fetch_int()));
+       assert(P);
+       if (P->encr_chat.exchange_state != tgl_sce_committed) {
+               memcpy(P->encr_chat.key, P->encr_chat.exchange_key, 256);
+               P->encr_chat.key_fingerprint = P->encr_chat.exchange_key_fingerprint;
+       }
+       P->encr_chat.exchange_state = tgl_sce_none;
+       return 0;
+}
+
+static int fetch_comb_binlog_encr_chat_exchange_abort(struct tgl_state *TLS, void *extra)
+{
+       tgl_peer_t *P = tgl_peer_get(TLS, TGL_MK_ENCR_CHAT(fetch_int()));
+       assert(P);
+       if (P->encr_chat.exchange_state == tgl_sce_committed) {
+               memcpy(P->encr_chat.key, P->encr_chat.exchange_key, 256);
+               P->encr_chat.key_fingerprint = P->encr_chat.exchange_key_fingerprint;
+       }
+       P->encr_chat.exchange_state = tgl_sce_none;
+       return 0;
+}
+
+#define FETCH_COMBINATOR_FUNCTION(NAME) \
+               case CODE_ ## NAME:\
+               ok = fetch_comb_ ## NAME(TLS, 0); \
+               break; \
+
+
+static void replay_log_event(struct tgl_state *TLS)
+{
+       assert(rptr < wptr);
+       int op = *rptr;
+
+       vlogprintf(E_DEBUG, "replay_log_event: log_pos=%lld, op=0x%08x\n", binlog_pos, op);
+
+       in_ptr = rptr;
+       in_end = wptr;
+       assert(skip_type_any(TYPE_TO_PARAM(binlog_update)) >= 0);
+       in_end = in_ptr;
+       in_ptr = rptr;
+
+       int ok = -1;
+       in_ptr ++;
+
+       switch(op) {
+       FETCH_COMBINATOR_FUNCTION(binlog_start)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_dc_option)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_auth_key)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_default_dc)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_our_id)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_dc_signed)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_dc_salt)
+
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_set_dh_params)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_set_pts)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_set_qts)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_set_date)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_set_seq)
+
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_user_add)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_user_delete)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_user_set_access_hash)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_user_set_phone)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_user_set_friend)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_user_set_full_photo)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_user_set_blocked)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_user_set_name)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_user_set_username)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_user_set_photo)
+
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_user_set_real_name)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_encr_chat_delete)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_encr_chat_requested)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_encr_chat_set_access_hash)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_encr_chat_set_date)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_encr_chat_set_ttl)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_encr_chat_set_layer)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_encr_chat_set_state)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_encr_chat_accepted)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_encr_chat_set_key)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_encr_chat_set_sha)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_encr_chat_update_seq)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_encr_chat_set_seq)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_encr_chat_init)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_encr_chat_create)
+
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_chat_create)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_chat_change_flags)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_chat_set_title)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_chat_set_photo)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_chat_set_date)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_chat_set_version)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_chat_set_admin)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_chat_set_participants)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_chat_set_full_photo)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_chat_add_participant)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_chat_del_participant)
+
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_create_message_text)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_send_message_text)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_send_message_action_encr)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_create_message_text_fwd)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_create_message_media)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_create_message_media_encr)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_create_message_media_encr_pending)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_create_message_media_encr_sent)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_create_message_media_fwd)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_create_message_service)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_create_message_service_encr)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_create_message_service_fwd)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_message_set_unread)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_message_set_unread_long)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_set_message_sent)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_set_msg_id)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_message_set_outbound)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_delete_msg)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_msg_seq_update)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_msg_update)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_reset_authorization)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_encr_chat_exchange_request)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_encr_chat_exchange_accept)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_encr_chat_exchange_commit)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_encr_chat_exchange_confirm)
+                                                                                 FETCH_COMBINATOR_FUNCTION(binlog_encr_chat_exchange_abort)
+       default:
+               vlogprintf(E_ERROR, "Unknown op 0x%08x\n", op);
+               assert(0);
+       }
+       assert(ok >= 0);
+
+       assert(in_ptr == in_end);
+       binlog_pos +=(in_ptr - rptr) * 4;
+       rptr = in_ptr;
+}
+
+static void create_new_binlog(struct tgl_state *TLS)
+{
+       clear_packet();
+       //static int s[1000];
+
+       //packet_ptr = s;
+       out_int(CODE_binlog_start);
+       if (TLS->test_mode) {
+               out_int(CODE_binlog_dc_option);
+               out_int(1);
+               out_string("");
+               out_string(TG_SERVER_TEST_1);
+               out_int(443);
+               out_int(CODE_binlog_dc_option);
+               out_int(2);
+               out_string("");
+               out_string(TG_SERVER_TEST_2);
+               out_int(443);
+               out_int(CODE_binlog_dc_option);
+               out_int(3);
+               out_string("");
+               out_string(TG_SERVER_TEST_3);
+               out_int(443);
+               out_int(CODE_binlog_default_dc);
+               out_int(2);
+       } else {
+               out_int(CODE_binlog_dc_option);
+               out_int(1);
+               out_string("");
+               out_string(TG_SERVER_1);
+               out_int(443);
+               out_int(CODE_binlog_dc_option);
+               out_int(2);
+               out_string("");
+               out_string(TG_SERVER_2);
+               out_int(443);
+               out_int(CODE_binlog_dc_option);
+               out_int(3);
+               out_string("");
+               out_string(TG_SERVER_3);
+               out_int(443);
+               out_int(CODE_binlog_dc_option);
+               out_int(4);
+               out_string("");
+               out_string(TG_SERVER_4);
+               out_int(443);
+               out_int(CODE_binlog_dc_option);
+               out_int(5);
+               out_string("");
+               out_string(TG_SERVER_5);
+               out_int(443);
+               out_int(CODE_binlog_default_dc);
+               out_int(2);
+       }
+
+       int fd = open(TLS->binlog_name, O_WRONLY | O_EXCL | O_CREAT, 0600);
+       if (fd < 0) {
+               perror("Write new binlog");
+               exit(2);
+       }
+       assert(write(fd, packet_buffer,(packet_ptr - packet_buffer) * 4) ==(packet_ptr - packet_buffer) * 4);
+       close(fd);
+}
+
+
+void tgl_replay_log(struct tgl_state *TLS)
+{
+       if (!TLS->binlog_enabled) { return; }
+       if (access(TLS->binlog_name, F_OK) < 0) {
+               printf("No binlog found. Creating new one\n");
+               create_new_binlog(TLS);
+       }
+       int fd = open(TLS->binlog_name, O_RDONLY);
+       if (fd < 0) {
+               perror("binlog open");
+               exit(2);
+       }
+       int end = 0;
+       in_replay_log = 1;
+       while(1) {
+               if (!end && wptr - rptr < MAX_LOG_EVENT_SIZE / 4) {
+                       if (wptr == rptr) {
+                               wptr = rptr = binlog_buffer;
+                       } else {
+                               int x = wptr - rptr;
+                               memcpy(binlog_buffer, rptr, 4 * x);
+                               wptr -=(rptr - binlog_buffer);
+                               rptr = binlog_buffer;
+                       }
+                       int l =(binlog_buffer + BINLOG_BUFFER_SIZE - wptr) * 4;
+                       int k = read(fd, wptr, l);
+                       if (k < 0) {
+                               perror("read binlog");
+                               exit(2);
+                       }
+                       assert(!(k & 3));
+                       if (k < l) {
+                               end = 1;
+                       }
+                       wptr +=(k / 4);
+               }
+               if (wptr == rptr) { break; }
+               replay_log_event(TLS);
+       }
+       in_replay_log = 0;
+       close(fd);
+}
+
+static int b_packet_buffer[PACKET_BUFFER_SIZE];
+
+void tgl_reopen_binlog_for_writing(struct tgl_state *TLS)
+{
+       TLS->binlog_fd = open(TLS->binlog_name, O_WRONLY);
+       if (TLS->binlog_fd < 0) {
+               perror("binlog open");
+               exit(2);
+       }
+
+       assert(lseek(TLS->binlog_fd, binlog_pos, SEEK_SET) == binlog_pos);
+       if (flock(TLS->binlog_fd, LOCK_EX | LOCK_NB) < 0) {
+               perror("get lock");
+               exit(2);
+       }
+}
+
+static void add_log_event(struct tgl_state *TLS, const int *data, int len)
+{
+       vlogprintf(E_DEBUG, "Add log event: magic = 0x%08x, len = %d\n", data[0], len);
+       assert(!(len & 3));
+       rptr =(void *)data;
+       wptr = rptr +(len / 4);
+       int *in = in_ptr;
+       int *end = in_end;
+       replay_log_event(TLS);
+       if (rptr != wptr) {
+               vlogprintf(E_ERROR, "Unread %lld ints. Len = %d\n",(long long)(wptr - rptr), len);
+               assert(rptr == wptr);
+       }
+       if (TLS->binlog_enabled) {
+               assert(TLS->binlog_fd > 0);
+               assert(write(TLS->binlog_fd, data, len) == len);
+       }
+       in_ptr = in;
+       in_end = end;
+}
+
+void bl_do_set_auth_key_id(struct tgl_state *TLS, int num, unsigned char *buf)
+{
+       static unsigned char sha1_buffer[20];
+       SHA1(buf, 256, sha1_buffer);
+       long long fingerprint = * (long long *)(sha1_buffer + 12);
+       int *ev = alloc_log_event(8 + 8 + 256);
+       ev[0] = CODE_binlog_auth_key;
+       ev[1] = num;
+       * (long long *)(ev + 2) = fingerprint;
+       memcpy(ev + 4, buf, 256);
+       add_log_event(TLS, ev, 8 + 8 + 256);
+}
+
+void bl_do_set_our_id(struct tgl_state *TLS, int id)
+{
+       if (TLS->our_id) {
+               assert(TLS->our_id == id);
+               return;
+       }
+       int *ev = alloc_log_event(8);
+       ev[0] = CODE_binlog_our_id;
+       ev[1] = id;
+       add_log_event(TLS, ev, 8);
+       //write_auth_file();
+}
+
+void bl_do_user_add(struct tgl_state *TLS, int id, const char *f, int fl, const char *l, int ll, long long access_token, const char *p, int pl, int contact)
+{
+       clear_packet();
+       out_int(CODE_binlog_user_add);
+       out_int(id);
+       out_cstring(f ? f : "", fl);
+       out_cstring(l ? l : "", ll);
+       out_long(access_token);
+       out_cstring(p ? p : "", pl);
+       out_int(contact);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_user_delete(struct tgl_state *TLS, struct tgl_user *U)
+{
+       if (U->flags & FLAG_DELETED)
+               return;
+       int *ev = alloc_log_event(8);
+       ev[0] = CODE_binlog_user_delete;
+       ev[1] = tgl_get_peer_id(U->id);
+       add_log_event(TLS, ev, 8);
+}
+
+void bl_do_set_user_profile_photo(struct tgl_state *TLS, struct tgl_user *U, long long photo_id, struct tgl_file_location *big, struct tgl_file_location *small)
+{
+       if (photo_id == U->photo_id)
+               return;
+
+       if (!photo_id) {
+               int *ev = alloc_log_event(12);
+               ev[0] = CODE_binlog_user_set_photo;
+               ev[1] = tgl_get_peer_id(U->id);
+               ev[2] = CODE_user_profile_photo_empty;
+               add_log_event(TLS, ev, 12);
+       } else {
+               clear_packet();
+               out_int(CODE_binlog_user_set_photo);
+               out_int(tgl_get_peer_id(U->id));
+               out_int(CODE_user_profile_photo);
+               out_long(photo_id);
+               if (small->dc >= 0) {
+                       out_int(CODE_file_location);
+                       out_int(small->dc);
+                       out_long(small->volume);
+                       out_int(small->local_id);
+                       out_long(small->secret);
+               } else {
+                       out_int(CODE_file_location_unavailable);
+                       out_long(small->volume);
+                       out_int(small->local_id);
+                       out_long(small->secret);
+               }
+               if (big->dc >= 0) {
+                       out_int(CODE_file_location);
+                       out_int(big->dc);
+                       out_long(big->volume);
+                       out_int(big->local_id);
+                       out_long(big->secret);
+               } else {
+                       out_int(CODE_file_location_unavailable);
+                       out_long(big->volume);
+                       out_int(big->local_id);
+                       out_long(big->secret);
+               }
+               add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+       }
+}
+
+void bl_do_user_set_name(struct tgl_state *TLS, struct tgl_user *U, const char *f, int fl, const char *l, int ll)
+{
+       if ((U->first_name &&(int)strlen(U->first_name) == fl && !strncmp(U->first_name, f, fl)) &&
+                       (U->last_name  &&(int)strlen(U->last_name)  == ll && !strncmp(U->last_name,  l, ll))) {
+               return;
+       }
+       clear_packet();
+       out_int(CODE_binlog_user_set_name);
+       out_int(tgl_get_peer_id(U->id));
+       out_cstring(f, fl);
+       out_cstring(l, ll);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_user_set_username(struct tgl_state *TLS, struct tgl_user *U, const char *f, int l)
+{
+       if ((U->username &&(int)strlen(U->username) == l && !strncmp(U->username, f, l)) ||
+                       (!l && !U->username)) {
+               return;
+       }
+
+       clear_packet();
+       out_int(CODE_binlog_user_set_username);
+       out_int(tgl_get_peer_id(U->id));
+       out_cstring(f, l);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_user_set_access_hash(struct tgl_state *TLS, struct tgl_user *U, long long access_token)
+{
+       if (U->access_hash == access_token)
+               return;
+       int *ev = alloc_log_event(16);
+       ev[0] = CODE_binlog_user_set_access_hash;
+       ev[1] = tgl_get_peer_id(U->id);
+       * (long long *)(ev + 2) = access_token;
+       add_log_event(TLS, ev, 16);
+}
+
+void bl_do_user_set_phone(struct tgl_state *TLS, struct tgl_user *U, const char *p, int pl)
+{
+       if (U->phone &&(int)strlen(U->phone) == pl && !strncmp(U->phone, p, pl))
+               return;
+
+       clear_packet();
+       out_int(CODE_binlog_user_set_phone);
+       out_int(tgl_get_peer_id(U->id));
+       out_cstring(p, pl);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_user_set_friend(struct tgl_state *TLS, struct tgl_user *U, int friend)
+{
+       if (friend ==((U->flags & FLAG_USER_CONTACT) != 0))
+               return;
+
+       int *ev = alloc_log_event(12);
+       ev[0] = CODE_binlog_user_set_friend;
+       ev[1] = tgl_get_peer_id(U->id);
+       ev[2] = friend;
+       add_log_event(TLS, ev, 12);
+}
+
+void bl_do_dc_option(struct tgl_state *TLS, int id, int l1, const char *name, int l2, const char *ip, int port)
+{
+       struct tgl_dc *DC = TLS->DC_list[id];
+
+       if (DC && !strncmp(ip, DC->ip, l2))
+               return;
+
+       clear_packet();
+       out_int(CODE_binlog_dc_option);
+       out_int(id);
+       out_cstring(name, l1);
+       out_cstring(ip, l2);
+       out_int(port);
+
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_dc_signed(struct tgl_state *TLS, int id)
+{
+       int *ev = alloc_log_event(8);
+       ev[0] = CODE_binlog_dc_signed;
+       ev[1] = id;
+       add_log_event(TLS, ev, 8);
+}
+
+void bl_do_set_working_dc(struct tgl_state *TLS, int num)
+{
+       int *ev = alloc_log_event(8);
+       ev[0] = CODE_binlog_default_dc;
+       ev[1] = num;
+       add_log_event(TLS, ev, 8);
+}
+
+void bl_do_user_set_full_photo(struct tgl_state *TLS, struct tgl_user *U, const int *start, int len)
+{
+       if (U->photo.id == * (long long *)(start + 1))
+               return;
+
+       int *ev = alloc_log_event(len + 8);
+       ev[0] = CODE_binlog_user_set_full_photo;
+       ev[1] = tgl_get_peer_id(U->id);
+       memcpy(ev + 2, start, len);
+       add_log_event(TLS, ev, len + 8);
+}
+
+void bl_do_user_set_blocked(struct tgl_state *TLS, struct tgl_user *U, int blocked)
+{
+       if (U->blocked == blocked)
+               return;
+
+       int *ev = alloc_log_event(12);
+       ev[0] = CODE_binlog_user_set_blocked;
+       ev[1] = tgl_get_peer_id(U->id);
+       ev[2] = blocked;
+       add_log_event(TLS, ev, 12);
+}
+
+void bl_do_user_set_real_name(struct tgl_state *TLS, struct tgl_user *U, const char *f, int fl, const char *l, int ll)
+{
+       if ((U->real_first_name &&(int)strlen(U->real_first_name) == fl && !strncmp(U->real_first_name, f, fl)) &&
+                       (U->real_last_name  &&(int)strlen(U->real_last_name)  == ll && !strncmp(U->real_last_name,  l, ll))) {
+               return;
+       }
+
+       clear_packet();
+       out_int(CODE_binlog_user_set_real_name);
+       out_int(tgl_get_peer_id(U->id));
+       out_cstring(f, fl);
+       out_cstring(l, ll);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_encr_chat_delete(struct tgl_state *TLS, struct tgl_secret_chat *U)
+{
+       if (!(U->flags & FLAG_CREATED) || U->state == sc_deleted || U->state == sc_none)
+               return;
+
+       int *ev = alloc_log_event(8);
+       ev[0] = CODE_binlog_encr_chat_delete;
+       ev[1] = tgl_get_peer_id(U->id);
+       add_log_event(TLS, ev, 8);
+}
+
+void bl_do_encr_chat_requested(struct tgl_state *TLS, struct tgl_secret_chat *U, long long access_hash, int date, int admin_id, int user_id, unsigned char g_key[], unsigned char nonce[])
+{
+       if (U->state != sc_none)
+               return;
+
+       int *ev = alloc_log_event(540);
+       ev[0] = CODE_binlog_encr_chat_requested;
+       ev[1] = tgl_get_peer_id(U->id);
+       * (long long *)(ev + 2) = access_hash;
+       ev[4] = date;
+       ev[5] = admin_id;
+       ev[6] = user_id;
+       memcpy(ev + 7, g_key, 256);
+       memcpy(ev + 7 + 64, nonce, 256);
+       add_log_event(TLS, ev, 540);
+}
+
+void bl_do_encr_chat_set_access_hash(struct tgl_state *TLS, struct tgl_secret_chat *U, long long access_hash)
+{
+       if (U->access_hash == access_hash)
+               return;
+
+       int *ev = alloc_log_event(16);
+       ev[0] = CODE_binlog_encr_chat_set_access_hash;
+       ev[1] = tgl_get_peer_id(U->id);
+       * (long long *)(ev + 2) = access_hash;
+       add_log_event(TLS, ev, 16);
+}
+
+void bl_do_encr_chat_set_date(struct tgl_state *TLS, struct tgl_secret_chat *U, int date)
+{
+       if (U->date == date)
+               return;
+
+       int *ev = alloc_log_event(12);
+       ev[0] = CODE_binlog_encr_chat_set_date;
+       ev[1] = tgl_get_peer_id(U->id);
+       ev[2] = date;
+       add_log_event(TLS, ev, 12);
+}
+
+void bl_do_encr_chat_set_ttl(struct tgl_state *TLS, struct tgl_secret_chat *U, int ttl)
+{
+       if (U->ttl == ttl)
+               return;
+
+       int *ev = alloc_log_event(12);
+       ev[0] = CODE_binlog_encr_chat_set_ttl;
+       ev[1] = tgl_get_peer_id(U->id);
+       ev[2] = ttl;
+       add_log_event(TLS, ev, 12);
+}
+
+void bl_do_encr_chat_set_layer(struct tgl_state *TLS, struct tgl_secret_chat *U, int layer)
+{
+       if (U->layer >= layer)
+               return;
+
+       int *ev = alloc_log_event(12);
+       ev[0] = CODE_binlog_encr_chat_set_layer;
+       ev[1] = tgl_get_peer_id(U->id);
+       ev[2] = layer;
+       add_log_event(TLS, ev, 12);
+}
+
+void bl_do_encr_chat_set_state(struct tgl_state *TLS, struct tgl_secret_chat *U, enum tgl_secret_chat_state state)
+{
+       if (U->state == state)
+               return;
+
+       int *ev = alloc_log_event(12);
+       ev[0] = CODE_binlog_encr_chat_set_state;
+       ev[1] = tgl_get_peer_id(U->id);
+       ev[2] = state;
+       add_log_event(TLS, ev, 12);
+}
+
+void bl_do_encr_chat_accepted(struct tgl_state *TLS, struct tgl_secret_chat *U, const unsigned char g_key[], const unsigned char nonce[], long long key_fingerprint)
+{
+       if (U->state != sc_waiting && U->state != sc_request)
+               return;
+
+       int *ev = alloc_log_event(528);
+       ev[0] = CODE_binlog_encr_chat_accepted;
+       ev[1] = tgl_get_peer_id(U->id);
+       memcpy(ev + 2, g_key, 256);
+       memcpy(ev + 66, nonce, 256);
+       * (long long *)(ev + 130) = key_fingerprint;
+       add_log_event(TLS, ev, 528);
+}
+
+void bl_do_encr_chat_create(struct tgl_state *TLS, int id, int user_id, int admin_id, char *name, int name_len)
+{
+       clear_packet();
+       out_int(CODE_binlog_encr_chat_create);
+       out_int(id);
+       out_int(user_id);
+       out_int(admin_id);
+       out_cstring(name, name_len);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_encr_chat_set_key(struct tgl_state *TLS, struct tgl_secret_chat *E, unsigned char key[], long long key_fingerprint)
+{
+       int *ev = alloc_log_event(272);
+       ev[0] = CODE_binlog_encr_chat_set_key;
+       ev[1] = tgl_get_peer_id(E->id);
+       memcpy(ev + 2, key, 256);
+       * (long long *)(ev + 66) = key_fingerprint;
+       add_log_event(TLS, ev, 272);
+}
+
+void bl_do_encr_chat_set_sha(struct tgl_state *TLS, struct tgl_secret_chat *E, unsigned char sha[])
+{
+       int *ev = alloc_log_event(28);
+       ev[0] = CODE_binlog_encr_chat_set_sha;
+       ev[1] = tgl_get_peer_id(E->id);
+       memcpy(ev + 2, sha, 20);
+       add_log_event(TLS, ev, 28);
+}
+
+void bl_do_encr_chat_update_seq(struct tgl_state *TLS, struct tgl_secret_chat *E, int in_seq_no, int out_seq_no)
+{
+       int *ev = alloc_log_event(16);
+       ev[0] = CODE_binlog_encr_chat_update_seq;
+       ev[1] = tgl_get_peer_id(E->id);
+       ev[2] = in_seq_no;
+       ev[3] = out_seq_no;
+       add_log_event(TLS, ev, 16);
+}
+
+void bl_do_encr_chat_set_seq(struct tgl_state *TLS, struct tgl_secret_chat *E, int in_seq_no, int last_in_seq_no, int out_seq_no)
+{
+       int *ev = alloc_log_event(20);
+       ev[0] = CODE_binlog_encr_chat_set_seq;
+       ev[1] = tgl_get_peer_id(E->id);
+       ev[2] = in_seq_no;
+       ev[3] = last_in_seq_no;
+       ev[4] = out_seq_no;
+       add_log_event(TLS, ev, 20);
+}
+
+void bl_do_set_dh_params(struct tgl_state *TLS, int root, unsigned char prime[], int version)
+{
+       int *ev = alloc_log_event(268);
+       ev[0] = CODE_binlog_set_dh_params;
+       ev[1] = root;
+       memcpy(ev + 2, prime, 256);
+       ev[66] = version;
+       add_log_event(TLS, ev, 268);
+}
+
+void bl_do_encr_chat_init(struct tgl_state *TLS, int id, int user_id, unsigned char random[], unsigned char g_a[])
+{
+       int *ev = alloc_log_event(524);
+       ev[0] = CODE_binlog_encr_chat_init;
+       ev[1] = id;
+       ev[2] = user_id;
+       memcpy(ev + 3, random, 256);
+       memcpy(ev + 67, g_a, 256);
+       add_log_event(TLS, ev, 524);
+}
+
+void bl_do_set_pts(struct tgl_state *TLS, int pts)
+{
+       if (TLS->locks & TGL_LOCK_DIFF)
+               return;
+
+       if (pts <= TLS->pts)
+               return;
+
+       int *ev = alloc_log_event(8);
+       ev[0] = CODE_binlog_set_pts;
+       ev[1] = pts;
+       add_log_event(TLS, ev, 8);
+}
+
+void bl_do_set_qts(struct tgl_state *TLS, int qts)
+{
+       if (TLS->locks & TGL_LOCK_DIFF)
+               return;
+
+       if (qts <= TLS->qts)
+               return;
+
+       int *ev = alloc_log_event(8);
+       ev[0] = CODE_binlog_set_qts;
+       ev[1] = qts;
+       add_log_event(TLS, ev, 8);
+}
+
+void bl_do_set_date(struct tgl_state *TLS, int date)
+{
+       if (TLS->locks & TGL_LOCK_DIFF)
+               return;
+
+       if (date <= TLS->date)
+               return;
+
+       int *ev = alloc_log_event(8);
+       ev[0] = CODE_binlog_set_date;
+       ev[1] = date;
+       add_log_event(TLS, ev, 8);
+}
+
+void bl_do_set_seq(struct tgl_state *TLS, int seq)
+{
+       if (TLS->locks & TGL_LOCK_DIFF)
+               return;
+
+       if (seq == TLS->seq)
+               return;
+
+       int *ev = alloc_log_event(8);
+       ev[0] = CODE_binlog_set_seq;
+       ev[1] = seq;
+       add_log_event(TLS, ev, 8);
+}
+
+void bl_do_create_chat(struct tgl_state *TLS, struct tgl_chat *C, int y, const char *s, int l, int users_num, int date, int version, struct tgl_file_location *big, struct tgl_file_location *small)
+{
+       clear_packet();
+       out_int(CODE_binlog_chat_create);
+       out_int(tgl_get_peer_id(C->id));
+       out_int(y);
+       out_cstring(s, l);
+       out_int(users_num);
+       out_int(date);
+       out_int(version);
+       out_data(big, sizeof(struct tgl_file_location));
+       out_data(small, sizeof(struct tgl_file_location));
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_chat_forbid(struct tgl_state *TLS, struct tgl_chat *C, int on)
+{
+       if (on) {
+
+               if (C->flags & FLAG_FORBIDDEN)
+                       return;
+
+               int *ev = alloc_log_event(16);
+               ev[0] = CODE_binlog_chat_change_flags;
+               ev[1] = tgl_get_peer_id(C->id);
+               ev[2] = FLAG_FORBIDDEN;
+               ev[3] = 0;
+               add_log_event(TLS, ev, 16);
+       } else {
+
+               if (!(C->flags & FLAG_FORBIDDEN))
+                       return;
+
+               int *ev = alloc_log_event(16);
+               ev[0] = CODE_binlog_chat_change_flags;
+               ev[1] = tgl_get_peer_id(C->id);
+               ev[2] = 0;
+               ev[3] = FLAG_FORBIDDEN;
+               add_log_event(TLS, ev, 16);
+       }
+}
+
+void bl_do_chat_set_title(struct tgl_state *TLS, struct tgl_chat *C, const char *s, int l)
+{
+       if (C->title &&(int)strlen(C->title) == l && !strncmp(C->title, s, l))
+               return;
+
+       clear_packet();
+       out_int(CODE_binlog_chat_set_title);
+       out_int(tgl_get_peer_id(C->id));
+       out_cstring(s, l);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_chat_set_photo(struct tgl_state *TLS, struct tgl_chat *C, struct tgl_file_location *big, struct tgl_file_location *small)
+{
+       if (!memcmp(&C->photo_small, small, sizeof(struct tgl_file_location)) &&
+                       !memcmp(&C->photo_big, big, sizeof(struct tgl_file_location))) {
+               return;
+       }
+       clear_packet();
+       out_int(CODE_binlog_chat_set_photo);
+       out_int(tgl_get_peer_id(C->id));
+       out_data(big, sizeof(struct tgl_file_location));
+       out_data(small, sizeof(struct tgl_file_location));
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_chat_set_date(struct tgl_state *TLS, struct tgl_chat *C, int date)
+{
+       if (C->date == date)
+               return;
+
+       int *ev = alloc_log_event(12);
+       ev[0] = CODE_binlog_chat_set_date;
+       ev[1] = tgl_get_peer_id(C->id);
+       ev[2] = date;
+       add_log_event(TLS, ev, 12);
+}
+
+void bl_do_chat_set_set_in_chat(struct tgl_state *TLS, struct tgl_chat *C, int on)
+{
+       if (on) {
+               if (C->flags & FLAG_CHAT_IN_CHAT)
+                       return;
+
+               int *ev = alloc_log_event(16);
+               ev[0] = CODE_binlog_chat_change_flags;
+               ev[1] = tgl_get_peer_id(C->id);
+               ev[2] = FLAG_CHAT_IN_CHAT;
+               ev[3] = 0;
+               add_log_event(TLS, ev, 16);
+       } else {
+               if (!(C->flags & FLAG_CHAT_IN_CHAT))
+                       return;
+
+               int *ev = alloc_log_event(16);
+               ev[0] = CODE_binlog_chat_change_flags;
+               ev[1] = tgl_get_peer_id(C->id);
+               ev[2] = 0;
+               ev[3] = FLAG_CHAT_IN_CHAT;
+               add_log_event(TLS, ev, 16);
+       }
+}
+
+void bl_do_chat_set_version(struct tgl_state *TLS, struct tgl_chat *C, int version, int user_num)
+{
+       if (C->version >= version)
+               return;
+
+       int *ev = alloc_log_event(16);
+       ev[0] = CODE_binlog_chat_set_version;
+       ev[1] = tgl_get_peer_id(C->id);
+       ev[2] = version;
+       ev[3] = user_num;
+       add_log_event(TLS, ev, 16);
+}
+
+void bl_do_chat_set_admin(struct tgl_state *TLS, struct tgl_chat *C, int admin)
+{
+       if (C->admin_id == admin)
+               return;
+
+       int *ev = alloc_log_event(12);
+       ev[0] = CODE_binlog_chat_set_admin;
+       ev[1] = tgl_get_peer_id(C->id);
+       ev[2] = admin;
+       add_log_event(TLS, ev, 12);
+}
+
+void bl_do_chat_set_participants(struct tgl_state *TLS, struct tgl_chat *C, int version, int user_num, struct tgl_chat_user *users)
+{
+       if (C->user_list_version >= version)
+               return;
+
+       int *ev = alloc_log_event(12 * user_num + 16);
+       ev[0] = CODE_binlog_chat_set_participants;
+       ev[1] = tgl_get_peer_id(C->id);
+       ev[2] = version;
+       ev[3] = user_num;
+       memcpy(ev + 4, users, 12 * user_num);
+       add_log_event(TLS, ev, 12 * user_num + 16);
+}
+
+void bl_do_chat_set_full_photo(struct tgl_state *TLS, struct tgl_chat *U, const int *start, int len)
+{
+       if (U->photo.id == * (long long *)(start + 1))
+               return;
+
+       int *ev = alloc_log_event(len + 8);
+       ev[0] = CODE_binlog_chat_set_full_photo;
+       ev[1] = tgl_get_peer_id(U->id);
+       memcpy(ev + 2, start, len);
+       add_log_event(TLS, ev, len + 8);
+}
+
+void bl_do_chat_add_user(struct tgl_state *TLS, struct tgl_chat *C, int version, int user, int inviter, int date)
+{
+       if (C->user_list_version >= version || !C->user_list_version)
+               return;
+
+       int *ev = alloc_log_event(24);
+       ev[0] = CODE_binlog_chat_add_participant;
+       ev[1] = tgl_get_peer_id(C->id);
+       ev[2] = version;
+       ev[3] = user;
+       ev[4] = inviter;
+       ev[5] = date;
+       add_log_event(TLS, ev, 24);
+}
+
+void bl_do_chat_del_user(struct tgl_state *TLS, struct tgl_chat *C, int version, int user)
+{
+       if (C->user_list_version >= version || !C->user_list_version)
+               return;
+
+       int *ev = alloc_log_event(16);
+       ev[0] = CODE_binlog_chat_del_participant;
+       ev[1] = tgl_get_peer_id(C->id);
+       ev[2] = version;
+       ev[3] = user;
+       add_log_event(TLS, ev, 16);
+}
+
+void bl_do_create_message_text(struct tgl_state *TLS, int msg_id, int from_id, int to_type, int to_id, int date, int unread, int l, const char *s)
+{
+       clear_packet();
+       out_int(CODE_binlog_create_message_text);
+       out_int(msg_id);
+       out_int(from_id);
+       out_int(to_type);
+       out_int(to_id);
+       out_int(date);
+       out_int(unread);
+       out_cstring(s, l);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_send_message_text(struct tgl_state *TLS, long long msg_id, int from_id, int to_type, int to_id, int date, int l, const char *s)
+{
+       clear_packet();
+       out_int(CODE_binlog_send_message_text);
+       out_long(msg_id);
+       out_int(from_id);
+       out_int(to_type);
+       out_int(to_id);
+       out_int(date);
+       out_cstring(s, l);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_send_message_action_encr(struct tgl_state *TLS, long long msg_id, int from_id, int to_type, int to_id, int date, int l, const int *action)
+{
+       clear_packet();
+       out_int(CODE_binlog_send_message_action_encr);
+       out_long(msg_id);
+       out_int(from_id);
+       out_int(to_type);
+       out_int(to_id);
+       out_int(date);
+       out_ints(action, l);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_create_message_text_fwd(struct tgl_state *TLS, int msg_id, int from_id, int to_type, int to_id, int date, int fwd, int fwd_date, int unread, int l, const char *s)
+{
+       clear_packet();
+       out_int(CODE_binlog_create_message_text_fwd);
+       out_int(msg_id);
+       out_int(from_id);
+       out_int(to_type);
+       out_int(to_id);
+       out_int(date);
+       out_int(fwd);
+       out_int(fwd_date);
+       out_int(unread);
+       out_cstring(s, l);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_create_message_media(struct tgl_state *TLS, int msg_id, int from_id, int to_type, int to_id, int date, int unread, int l, const char *s, const int *data, int len)
+{
+       clear_packet();
+       out_int(CODE_binlog_create_message_media);
+       out_int(msg_id);
+       out_int(from_id);
+       out_int(to_type);
+       out_int(to_id);
+       out_int(date);
+       out_int(unread);
+       out_cstring(s, l);
+       out_ints(data, len);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_create_message_media_encr(struct tgl_state *TLS, long long msg_id, int from_id, int to_type, int to_id, int date, int l, const char *s, const int *data, int len, const int *data2, int len2)
+{
+       clear_packet();
+       out_int(CODE_binlog_create_message_media_encr);
+       out_long(msg_id);
+       out_int(from_id);
+       out_int(to_type);
+       out_int(to_id);
+       out_int(date);
+       out_cstring(s, l);
+       out_ints(data, len);
+       out_ints(data2, len2);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_create_message_media_encr_pending(struct tgl_state *TLS, long long msg_id, int from_id, int to_type, int to_id, int date, int l, const char *s, const int *data, int len)
+{
+       int *s_packet_buffer = packet_buffer;
+       int *s_packet_ptr = packet_ptr;
+       packet_buffer = b_packet_buffer;
+       clear_packet();
+       out_int(CODE_binlog_create_message_media_encr_pending);
+       out_long(msg_id);
+       out_int(from_id);
+       out_int(to_type);
+       out_int(to_id);
+       out_int(date);
+       out_cstring(s, l);
+       out_ints(data, len);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+       packet_buffer = s_packet_buffer;
+       packet_ptr = s_packet_ptr;
+}
+
+void bl_do_create_message_media_encr_sent(struct tgl_state *TLS, long long msg_id, const int *data, int len)
+{
+       clear_packet();
+       out_int(CODE_binlog_create_message_media_encr_sent);
+       out_long(msg_id);
+       out_ints(data, len);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_create_message_media_fwd(struct tgl_state *TLS, int msg_id, int from_id, int to_type, int to_id, int date, int fwd, int fwd_date, int unread, int l, const char *s, const int *data, int len)
+{
+       clear_packet();
+       out_int(CODE_binlog_create_message_media_fwd);
+       out_int(msg_id);
+       out_int(from_id);
+       out_int(to_type);
+       out_int(to_id);
+       out_int(date);
+       out_int(fwd);
+       out_int(fwd_date);
+       out_int(unread);
+       out_cstring(s, l);
+       out_ints(data, len);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_create_message_service(struct tgl_state *TLS, int msg_id, int from_id, int to_type, int to_id, int date, int unread, const int *data, int len)
+{
+       clear_packet();
+       out_int(CODE_binlog_create_message_service);
+       out_int(msg_id);
+       out_int(from_id);
+       out_int(to_type);
+       out_int(to_id);
+       out_int(date);
+       out_int(unread);
+       out_ints(data, len);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_create_message_service_encr(struct tgl_state *TLS, long long msg_id, int from_id, int to_type, int to_id, int date, const int *data, int len)
+{
+       clear_packet();
+       out_int(CODE_binlog_create_message_service_encr);
+       out_long(msg_id);
+       out_int(from_id);
+       out_int(to_type);
+       out_int(to_id);
+       out_int(date);
+       out_ints(data, len);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_create_message_service_fwd(struct tgl_state *TLS, int msg_id, int from_id, int to_type, int to_id, int date, int fwd, int fwd_date, int unread, const int *data, int len)
+{
+       clear_packet();
+       out_int(CODE_binlog_create_message_service_fwd);
+       out_int(msg_id);
+       out_int(from_id);
+       out_int(to_type);
+       out_int(to_id);
+       out_int(date);
+       out_int(fwd);
+       out_int(fwd_date);
+       out_int(unread);
+       out_ints(data, len);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_set_unread_long(struct tgl_state *TLS, struct tgl_message *M, int unread)
+{
+       if (unread || !M->unread)
+               return;
+
+       clear_packet();
+       out_int(CODE_binlog_message_set_unread_long);
+       out_long(M->id);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_set_unread(struct tgl_state *TLS, struct tgl_message *M, int unread)
+{
+       if (M->id !=(int)M->id)
+               bl_do_set_unread_long(TLS, M, unread);
+
+       if (unread || !M->unread)
+               return;
+
+       clear_packet();
+       out_int(CODE_binlog_message_set_unread);
+       out_int(M->id);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_set_message_sent(struct tgl_state *TLS, struct tgl_message *M)
+{
+       if (!(M->flags & FLAG_PENDING))
+               return;
+
+       clear_packet();
+       out_int(CODE_binlog_set_message_sent);
+       out_long(M->id);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_set_msg_id(struct tgl_state *TLS, struct tgl_message *M, int id)
+{
+       if (M->id == id)
+               return;
+
+       clear_packet();
+       out_int(CODE_binlog_set_msg_id);
+       out_long(M->id);
+       out_int(id);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_msg_set_outbound(struct tgl_state *TLS, long long id)
+{
+       clear_packet();
+       out_int(CODE_binlog_message_set_outbound);
+       out_long(id);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_delete_msg(struct tgl_state *TLS, struct tgl_message *M)
+{
+       clear_packet();
+       out_int(CODE_binlog_delete_msg);
+       out_long(M->id);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_msg_seq_update(struct tgl_state *TLS, long long id)
+{
+       if (TLS->locks & TGL_LOCK_DIFF) {
+               return; // We will receive this update in get_difference, that works now
+       }
+       clear_packet();
+       out_int(CODE_binlog_msg_seq_update);
+       out_long(id);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_msg_update(struct tgl_state *TLS, long long id)
+{
+       clear_packet();
+       out_int(CODE_binlog_msg_update);
+       out_long(id);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_reset_authorization(struct tgl_state *TLS)
+{
+       clear_packet();
+       out_int(CODE_binlog_reset_authorization);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+
+void bl_do_encr_chat_exchange_request(struct tgl_state *TLS, struct tgl_secret_chat *E, long long id, unsigned char a[])
+{
+       clear_packet();
+       out_int(CODE_binlog_encr_chat_exchange_request);
+       out_int(tgl_get_peer_id(E->id));
+       out_long(id);
+       out_ints((void *)a, 64);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_encr_chat_exchange_accept(struct tgl_state *TLS, struct tgl_secret_chat *E, long long id, unsigned char key[])
+{
+       clear_packet();
+       out_int(CODE_binlog_encr_chat_exchange_accept);
+       out_int(tgl_get_peer_id(E->id));
+       out_long(id);
+       out_ints((void *)key, 64);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+void bl_do_encr_chat_exchange_commit(struct tgl_state *TLS, struct tgl_secret_chat *E, unsigned char key[])
+{
+       clear_packet();
+       out_int(CODE_binlog_encr_chat_exchange_commit);
+       out_int(tgl_get_peer_id(E->id));
+       out_ints((void *)key, 64);
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_encr_chat_exchange_confirm(struct tgl_state *TLS, struct tgl_secret_chat *E)
+{
+       clear_packet();
+       out_int(CODE_binlog_encr_chat_exchange_confirm);
+       out_int(tgl_get_peer_id(E->id));
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
+
+void bl_do_encr_chat_exchange_abort(struct tgl_state *TLS, struct tgl_secret_chat *E)
+{
+       clear_packet();
+       out_int(CODE_binlog_encr_chat_exchange_abort);
+       out_int(tgl_get_peer_id(E->id));
+       add_log_event(TLS, packet_buffer, 4 * (packet_ptr - packet_buffer));
+}
diff --git a/tg-engine-service/mtprotocol/mime-types.c b/tg-engine-service/mtprotocol/mime-types.c
new file mode 100644 (file)
index 0000000..0110d3f
--- /dev/null
@@ -0,0 +1,4421 @@
+static char mime_types[] = {
+  0x23, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20,
+  0x6d, 0x61, 0x70, 0x73, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65,
+  0x74, 0x20, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x20, 0x74, 0x79, 0x70, 0x65,
+  0x73, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20,
+  0x66, 0x69, 0x6c, 0x65, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
+  0x6f, 0x6e, 0x28, 0x73, 0x29, 0x2e, 0x0a, 0x23, 0x20, 0x41, 0x6c, 0x74,
+  0x68, 0x6f, 0x75, 0x67, 0x68, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
+  0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x68, 0x74, 0x74, 0x70, 0x64, 0x2c,
+  0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x69,
+  0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x6d, 0x61,
+  0x6e, 0x79, 0x20, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x20,
+  0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x6e,
+  0x64, 0x20, 0x68, 0x61, 0x73, 0x20, 0x62, 0x65, 0x65, 0x6e, 0x20, 0x70,
+  0x6c, 0x61, 0x63, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65,
+  0x20, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x64, 0x6f, 0x6d, 0x61,
+  0x69, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x6e, 0x6c, 0x69, 0x6d,
+  0x69, 0x74, 0x65, 0x64, 0x20, 0x72, 0x65, 0x64, 0x69, 0x73, 0x72, 0x69,
+  0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x23, 0x0a, 0x23, 0x20,
+  0x54, 0x68, 0x65, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x62, 0x65,
+  0x6c, 0x6f, 0x77, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73,
+  0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74,
+  0x65, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x28, 0x63, 0x6f,
+  0x6d, 0x6d, 0x6f, 0x6e, 0x29, 0x20, 0x75, 0x6e, 0x72, 0x65, 0x67, 0x69,
+  0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73,
+  0x2e, 0x0a, 0x23, 0x20, 0x41, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x74,
+  0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x20, 0x75,
+  0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,
+  0x69, 0x6f, 0x6e, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x69,
+  0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x20, 0x2d, 0x2d, 0x20, 0x74, 0x68,
+  0x65, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x65,
+  0x64, 0x0a, 0x23, 0x20, 0x68, 0x65, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20,
+  0x67, 0x75, 0x69, 0x64, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+  0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x77,
+  0x61, 0x72, 0x64, 0x20, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x20, 0x74, 0x79,
+  0x70, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6d,
+  0x61, 0x6b, 0x65, 0x20, 0x69, 0x74, 0x20, 0x65, 0x61, 0x73, 0x69, 0x65,
+  0x72, 0x20, 0x74, 0x6f, 0x0a, 0x23, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74,
+  0x69, 0x66, 0x79, 0x20, 0x22, 0x6e, 0x65, 0x77, 0x22, 0x20, 0x74, 0x79,
+  0x70, 0x65, 0x73, 0x2e, 0x20, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x65,
+  0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x61, 0x72,
+  0x65, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
+  0x6e, 0x6c, 0x79, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20,
+  0x69, 0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x0a, 0x23, 0x20, 0x63,
+  0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x6c, 0x61, 0x6e, 0x67, 0x75,
+  0x61, 0x67, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x65, 0x6e, 0x63,
+  0x6f, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x2c, 0x20, 0x73, 0x6f, 0x20, 0x63,
+  0x68, 0x6f, 0x6f, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6d, 0x20, 0x63,
+  0x61, 0x72, 0x65, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x2e, 0x0a, 0x23, 0x0a,
+  0x23, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x6d,
+  0x65, 0x64, 0x69, 0x61, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x73,
+  0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x67,
+  0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x64,
+  0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20,
+  0x52, 0x46, 0x43, 0x20, 0x34, 0x32, 0x38, 0x38, 0x2e, 0x0a, 0x23, 0x20,
+  0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79,
+  0x20, 0x69, 0x73, 0x20, 0x61, 0x74, 0x20, 0x3c, 0x68, 0x74, 0x74, 0x70,
+  0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x61, 0x6e, 0x61, 0x2e,
+  0x6f, 0x72, 0x67, 0x2f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65,
+  0x6e, 0x74, 0x73, 0x2f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x2d, 0x74, 0x79,
+  0x70, 0x65, 0x73, 0x2f, 0x3e, 0x2e, 0x0a, 0x23, 0x0a, 0x23, 0x20, 0x4d,
+  0x49, 0x4d, 0x45, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x28, 0x6c, 0x6f,
+  0x77, 0x65, 0x72, 0x63, 0x61, 0x73, 0x65, 0x64, 0x29, 0x09, 0x09, 0x09,
+  0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x0a, 0x23,
+  0x20, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,
+  0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,
+  0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,
+  0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x09, 0x3d, 0x3d,
+  0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x31,
+  0x64, 0x2d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6c, 0x65, 0x61, 0x76, 0x65,
+  0x64, 0x2d, 0x70, 0x61, 0x72, 0x69, 0x74, 0x79, 0x66, 0x65, 0x63, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x33, 0x67, 0x70, 0x70, 0x2d, 0x69, 0x6d, 0x73, 0x2b, 0x78,
+  0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x6d,
+  0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61, 0x6e, 0x64, 0x72, 0x65,
+  0x77, 0x2d, 0x69, 0x6e, 0x73, 0x65, 0x74, 0x09, 0x09, 0x09, 0x65, 0x7a,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x65, 0x66, 0x69, 0x6c, 0x65,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x78, 0x77, 0x61, 0x72, 0x65, 0x09,
+  0x09, 0x09, 0x09, 0x61, 0x77, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61, 0x74, 0x6f, 0x6d, 0x2b, 0x78,
+  0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x61, 0x74, 0x6f, 0x6d, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61,
+  0x74, 0x6f, 0x6d, 0x63, 0x61, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09,
+  0x09, 0x09, 0x61, 0x74, 0x6f, 0x6d, 0x63, 0x61, 0x74, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x61, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x6d, 0x61, 0x69, 0x6c, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61,
+  0x74, 0x6f, 0x6d, 0x73, 0x76, 0x63, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09,
+  0x09, 0x09, 0x61, 0x74, 0x6f, 0x6d, 0x73, 0x76, 0x63, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x61, 0x75, 0x74, 0x68, 0x2d, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x2d,
+  0x73, 0x6d, 0x74, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x62, 0x65, 0x65, 0x70, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64,
+  0x61, 0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x61, 0x6c,
+  0x73, 0x2d, 0x31, 0x38, 0x34, 0x30, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x63, 0x6d,
+  0x70, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x63, 0x78, 0x6d, 0x6c, 0x2b,
+  0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x63, 0x63, 0x78, 0x6d, 0x6c,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x63, 0x64, 0x6d, 0x69, 0x2d, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69,
+  0x6c, 0x69, 0x74, 0x79, 0x09, 0x09, 0x09, 0x63, 0x64, 0x6d, 0x69, 0x61,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x63, 0x64, 0x6d, 0x69, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
+  0x6e, 0x65, 0x72, 0x09, 0x09, 0x09, 0x63, 0x64, 0x6d, 0x69, 0x63, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x63, 0x64, 0x6d, 0x69, 0x2d, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x09,
+  0x09, 0x09, 0x09, 0x63, 0x64, 0x6d, 0x69, 0x64, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x64, 0x6d,
+  0x69, 0x2d, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x09, 0x09, 0x09, 0x09,
+  0x63, 0x64, 0x6d, 0x69, 0x6f, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x64, 0x6d, 0x69, 0x2d, 0x71,
+  0x75, 0x65, 0x75, 0x65, 0x09, 0x09, 0x09, 0x09, 0x63, 0x64, 0x6d, 0x69,
+  0x71, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x65, 0x61, 0x2d, 0x32, 0x30, 0x31, 0x38,
+  0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x65, 0x6c, 0x6c, 0x6d,
+  0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x66, 0x77, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x63, 0x6e, 0x72, 0x70, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x6e,
+  0x64, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e,
+  0x63, 0x65, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x2b, 0x78, 0x6d, 0x6c, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x63, 0x70, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x63, 0x73, 0x74, 0x61, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x63,
+  0x73, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2b, 0x78, 0x6d, 0x6c, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x63, 0x75, 0x2d, 0x73, 0x65, 0x65, 0x6d, 0x65, 0x09, 0x09, 0x09, 0x09,
+  0x63, 0x75, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x79, 0x62, 0x65, 0x72, 0x63, 0x61,
+  0x73, 0x68, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x64, 0x61, 0x76, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x2b,
+  0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x64, 0x61, 0x76, 0x6d, 0x6f, 0x75,
+  0x6e, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x64, 0x63, 0x61, 0x2d, 0x72, 0x66, 0x74,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x64, 0x65, 0x63, 0x2d, 0x64, 0x78, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x64, 0x69, 0x63, 0x6f, 0x6d, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x64, 0x6e, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x64, 0x6f, 0x63, 0x62, 0x6f, 0x6f,
+  0x6b, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x64, 0x62, 0x6b,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x64, 0x73, 0x6b, 0x70, 0x70, 0x2b, 0x78, 0x6d, 0x6c,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x64, 0x73, 0x73, 0x63, 0x2b, 0x64, 0x65, 0x72, 0x09, 0x09, 0x09,
+  0x09, 0x64, 0x73, 0x73, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x64, 0x73, 0x73, 0x63, 0x2b, 0x78,
+  0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x78, 0x64, 0x73, 0x73, 0x63, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x64, 0x76, 0x63, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x65, 0x63, 0x6d, 0x61, 0x73,
+  0x63, 0x72, 0x69, 0x70, 0x74, 0x09, 0x09, 0x09, 0x09, 0x65, 0x63, 0x6d,
+  0x61, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x65, 0x64, 0x69, 0x2d, 0x63, 0x6f, 0x6e, 0x73,
+  0x65, 0x6e, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x65, 0x64, 0x69, 0x2d, 0x78, 0x31,
+  0x32, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x65, 0x64, 0x69, 0x66, 0x61, 0x63, 0x74, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x65, 0x6d, 0x6d, 0x61, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09,
+  0x65, 0x6d, 0x6d, 0x61, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x65, 0x70, 0x70, 0x2b, 0x78,
+  0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x65, 0x70, 0x75, 0x62, 0x2b, 0x7a, 0x69, 0x70, 0x09,
+  0x09, 0x09, 0x09, 0x65, 0x70, 0x75, 0x62, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x65, 0x73,
+  0x68, 0x6f, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c,
+  0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x65, 0x78, 0x69, 0x09, 0x09, 0x09, 0x09, 0x09, 0x65, 0x78,
+  0x69, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x66, 0x61, 0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f,
+  0x73, 0x65, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x66, 0x61, 0x73, 0x74, 0x73, 0x6f,
+  0x61, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x66, 0x69, 0x74, 0x73, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x66, 0x6f,
+  0x6e, 0x74, 0x2d, 0x74, 0x64, 0x70, 0x66, 0x72, 0x09, 0x09, 0x09, 0x09,
+  0x70, 0x66, 0x72, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x77,
+  0x6f, 0x72, 0x6b, 0x2d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
+  0x65, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x6d, 0x6c, 0x2b, 0x78,
+  0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x67, 0x6d, 0x6c, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x70,
+  0x78, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x67, 0x70, 0x78,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x67, 0x78, 0x66, 0x09, 0x09, 0x09, 0x09, 0x09, 0x67, 0x78, 0x66,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x68, 0x32, 0x32, 0x34, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x68, 0x65,
+  0x6c, 0x64, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x68, 0x74, 0x74,
+  0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x73, 0x74, 0x75, 0x64, 0x69,
+  0x6f, 0x09, 0x09, 0x09, 0x09, 0x73, 0x74, 0x6b, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x69,
+  0x62, 0x65, 0x2d, 0x6b, 0x65, 0x79, 0x2d, 0x72, 0x65, 0x71, 0x75, 0x65,
+  0x73, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x69, 0x62, 0x65,
+  0x2d, 0x70, 0x6b, 0x67, 0x2d, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x2b, 0x78,
+  0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x69, 0x62, 0x65, 0x2d, 0x70, 0x70, 0x2d,
+  0x64, 0x61, 0x74, 0x61, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x69, 0x67, 0x65, 0x73, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x69, 0x6d, 0x2d, 0x69, 0x73, 0x63, 0x6f, 0x6d, 0x70, 0x6f,
+  0x73, 0x69, 0x6e, 0x67, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x69,
+  0x6e, 0x64, 0x65, 0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78,
+  0x2e, 0x63, 0x6d, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78,
+  0x2e, 0x6f, 0x62, 0x6a, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78,
+  0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x6e, 0x64, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x69, 0x6e,
+  0x6b, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x69,
+  0x6e, 0x6b, 0x20, 0x69, 0x6e, 0x6b, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x69,
+  0x6f, 0x74, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x69, 0x70, 0x66, 0x69, 0x78, 0x09, 0x09, 0x09,
+  0x09, 0x69, 0x70, 0x66, 0x69, 0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x69, 0x70, 0x70,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x69, 0x73, 0x75, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x61, 0x76, 0x61,
+  0x2d, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x09, 0x09, 0x09, 0x6a,
+  0x61, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x6a, 0x61, 0x76, 0x61, 0x2d, 0x73, 0x65, 0x72, 0x69,
+  0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x2d, 0x6f, 0x62, 0x6a, 0x65, 0x63,
+  0x74, 0x09, 0x09, 0x73, 0x65, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x61, 0x76, 0x61, 0x2d,
+  0x76, 0x6d, 0x09, 0x09, 0x09, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x09, 0x09,
+  0x09, 0x09, 0x6a, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x09, 0x09, 0x09,
+  0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x6d, 0x6c,
+  0x2b, 0x6a, 0x73, 0x6f, 0x6e, 0x09, 0x09, 0x09, 0x09, 0x6a, 0x73, 0x6f,
+  0x6e, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6b, 0x70, 0x6d, 0x6c, 0x2d, 0x72,
+  0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x6b, 0x70, 0x6d, 0x6c, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+  0x73, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6c, 0x6f, 0x73, 0x74, 0x2b,
+  0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x6c, 0x6f, 0x73, 0x74, 0x78,
+  0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x6d, 0x61, 0x63, 0x2d, 0x62, 0x69, 0x6e, 0x68, 0x65,
+  0x78, 0x34, 0x30, 0x09, 0x09, 0x09, 0x68, 0x71, 0x78, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x61,
+  0x63, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x70, 0x72, 0x6f,
+  0x09, 0x09, 0x09, 0x63, 0x70, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x61, 0x63,
+  0x77, 0x72, 0x69, 0x74, 0x65, 0x69, 0x69, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x61, 0x64, 0x73,
+  0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x6d, 0x61, 0x64, 0x73,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x6d, 0x61, 0x72, 0x63, 0x09, 0x09, 0x09, 0x09, 0x6d, 0x72, 0x63,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x6d, 0x61, 0x72, 0x63, 0x78, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c,
+  0x09, 0x09, 0x09, 0x09, 0x6d, 0x72, 0x63, 0x78, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x61, 0x74,
+  0x68, 0x65, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x09, 0x09, 0x09, 0x09,
+  0x6d, 0x61, 0x20, 0x6e, 0x62, 0x20, 0x6d, 0x62, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d,
+  0x61, 0x74, 0x68, 0x6d, 0x6c, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
+  0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68,
+  0x6d, 0x6c, 0x2d, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68,
+  0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x6d, 0x61,
+  0x74, 0x68, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x62, 0x6d, 0x73, 0x2d,
+  0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x2d, 0x70,
+  0x72, 0x6f, 0x63, 0x65, 0x64, 0x75, 0x72, 0x65, 0x2d, 0x64, 0x65, 0x73,
+  0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2b, 0x78, 0x6d, 0x6c,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x6d, 0x62, 0x6d, 0x73, 0x2d, 0x64, 0x65, 0x72, 0x65,
+  0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x6d, 0x62, 0x6d, 0x73, 0x2d, 0x65, 0x6e, 0x76, 0x65, 0x6c, 0x6f,
+  0x70, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x62, 0x6d,
+  0x73, 0x2d, 0x6d, 0x73, 0x6b, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x6d, 0x62, 0x6d, 0x73, 0x2d, 0x6d, 0x73, 0x6b, 0x2d, 0x72, 0x65, 0x73,
+  0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x6d, 0x62, 0x6d, 0x73, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74,
+  0x69, 0x6f, 0x6e, 0x2d, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
+  0x69, 0x6f, 0x6e, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x62,
+  0x6d, 0x73, 0x2d, 0x72, 0x65, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+  0x2d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x6d, 0x62, 0x6d, 0x73, 0x2d, 0x72, 0x65, 0x67, 0x69, 0x73,
+  0x74, 0x65, 0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x62,
+  0x6d, 0x73, 0x2d, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x2d,
+  0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2b, 0x78, 0x6d, 0x6c,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x6d, 0x62, 0x6d, 0x73, 0x2d, 0x75, 0x73, 0x65, 0x72,
+  0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x64, 0x65, 0x73,
+  0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2b, 0x78, 0x6d, 0x6c,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x6d, 0x62, 0x6f, 0x78, 0x09, 0x09, 0x09, 0x09, 0x6d, 0x62, 0x6f,
+  0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x63, 0x6f,
+  0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x65,
+  0x64, 0x69, 0x61, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x63, 0x6f, 0x6e,
+  0x74, 0x72, 0x6f, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x6d, 0x73,
+  0x63, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x69, 0x6e, 0x6b,
+  0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x6c,
+  0x69, 0x6e, 0x6b, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x69, 0x6e, 0x6b,
+  0x34, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x6d, 0x65, 0x74, 0x61,
+  0x34, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x6d, 0x65, 0x74, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09,
+  0x09, 0x09, 0x6d, 0x65, 0x74, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x69, 0x6b,
+  0x65, 0x79, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x6d, 0x6f, 0x64, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x09,
+  0x09, 0x09, 0x09, 0x6d, 0x6f, 0x64, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x6f,
+  0x73, 0x73, 0x2d, 0x6b, 0x65, 0x79, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x6f,
+  0x73, 0x73, 0x2d, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x6d, 0x6f, 0x73, 0x73, 0x6b, 0x65, 0x79, 0x2d, 0x64,
+  0x61, 0x74, 0x61, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x6f, 0x73, 0x73, 0x6b, 0x65,
+  0x79, 0x2d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x70,
+  0x32, 0x31, 0x09, 0x09, 0x09, 0x09, 0x6d, 0x32, 0x31, 0x20, 0x6d, 0x70,
+  0x32, 0x31, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x6d, 0x70, 0x34, 0x09, 0x09, 0x09, 0x09, 0x09, 0x6d,
+  0x70, 0x34, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x70, 0x65, 0x67, 0x34, 0x2d,
+  0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x70,
+  0x65, 0x67, 0x34, 0x2d, 0x69, 0x6f, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x70,
+  0x65, 0x67, 0x34, 0x2d, 0x69, 0x6f, 0x64, 0x2d, 0x78, 0x6d, 0x74, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x6d, 0x73, 0x63, 0x2d, 0x69, 0x76, 0x72, 0x2b, 0x78, 0x6d,
+  0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x73, 0x63, 0x2d, 0x6d, 0x69, 0x78, 0x65,
+  0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6d, 0x73, 0x77, 0x6f, 0x72, 0x64,
+  0x09, 0x09, 0x09, 0x09, 0x64, 0x6f, 0x63, 0x20, 0x64, 0x6f, 0x74, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x6d, 0x78, 0x66, 0x09, 0x09, 0x09, 0x09, 0x09, 0x6d, 0x78, 0x66, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x6e, 0x61, 0x73, 0x64, 0x61, 0x74, 0x61, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x6e, 0x65, 0x77, 0x73, 0x2d, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x67, 0x72,
+  0x6f, 0x75, 0x70, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6e, 0x65, 0x77, 0x73, 0x2d,
+  0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x6e, 0x66, 0x6f, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x6e, 0x65, 0x77, 0x73, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69,
+  0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6e, 0x73, 0x73, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2d, 0x72, 0x65, 0x71, 0x75, 0x65,
+  0x73, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6f, 0x63, 0x73, 0x70, 0x2d, 0x72, 0x65,
+  0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6f, 0x63, 0x74, 0x65, 0x74,
+  0x2d, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x09, 0x62, 0x69, 0x6e, 0x20,
+  0x64, 0x6d, 0x73, 0x20, 0x6c, 0x72, 0x66, 0x20, 0x6d, 0x61, 0x72, 0x20,
+  0x73, 0x6f, 0x20, 0x64, 0x69, 0x73, 0x74, 0x20, 0x64, 0x69, 0x73, 0x74,
+  0x7a, 0x20, 0x70, 0x6b, 0x67, 0x20, 0x62, 0x70, 0x6b, 0x20, 0x64, 0x75,
+  0x6d, 0x70, 0x20, 0x65, 0x6c, 0x63, 0x20, 0x64, 0x65, 0x70, 0x6c, 0x6f,
+  0x79, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x6f, 0x64, 0x61, 0x09, 0x09, 0x09, 0x09, 0x09, 0x6f, 0x64,
+  0x61, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x6f, 0x65, 0x62, 0x70, 0x73, 0x2d, 0x70, 0x61, 0x63, 0x6b,
+  0x61, 0x67, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x6f, 0x70,
+  0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x6f, 0x67, 0x67, 0x09, 0x09, 0x09, 0x09, 0x09, 0x6f, 0x67,
+  0x78, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x6f, 0x6d, 0x64, 0x6f, 0x63, 0x2b, 0x78, 0x6d, 0x6c, 0x09,
+  0x09, 0x09, 0x09, 0x6f, 0x6d, 0x64, 0x6f, 0x63, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6f, 0x6e, 0x65,
+  0x6e, 0x6f, 0x74, 0x65, 0x09, 0x09, 0x09, 0x09, 0x6f, 0x6e, 0x65, 0x74,
+  0x6f, 0x63, 0x20, 0x6f, 0x6e, 0x65, 0x74, 0x6f, 0x63, 0x32, 0x20, 0x6f,
+  0x6e, 0x65, 0x74, 0x6d, 0x70, 0x20, 0x6f, 0x6e, 0x65, 0x70, 0x6b, 0x67,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x6f, 0x78, 0x70, 0x73, 0x09, 0x09, 0x09, 0x09, 0x6f, 0x78, 0x70,
+  0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x61, 0x72, 0x69, 0x74, 0x79, 0x66, 0x65,
+  0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x70, 0x61, 0x74, 0x63, 0x68, 0x2d, 0x6f, 0x70, 0x73, 0x2d,
+  0x65, 0x72, 0x72, 0x6f, 0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09,
+  0x78, 0x65, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x64, 0x66, 0x09, 0x09, 0x09, 0x09, 0x09,
+  0x70, 0x64, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x67, 0x70, 0x2d, 0x65, 0x6e, 0x63, 0x72,
+  0x79, 0x70, 0x74, 0x65, 0x64, 0x09, 0x09, 0x09, 0x70, 0x67, 0x70, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x70, 0x67, 0x70, 0x2d, 0x6b, 0x65, 0x79, 0x73, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70,
+  0x67, 0x70, 0x2d, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65,
+  0x09, 0x09, 0x09, 0x61, 0x73, 0x63, 0x20, 0x73, 0x69, 0x67, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70,
+  0x69, 0x63, 0x73, 0x2d, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x09, 0x09, 0x09,
+  0x09, 0x70, 0x72, 0x66, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x69, 0x64, 0x66, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x69, 0x64, 0x66, 0x2d, 0x64,
+  0x69, 0x66, 0x66, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x6b, 0x63, 0x73,
+  0x31, 0x30, 0x09, 0x09, 0x09, 0x09, 0x70, 0x31, 0x30, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x6b,
+  0x63, 0x73, 0x37, 0x2d, 0x6d, 0x69, 0x6d, 0x65, 0x09, 0x09, 0x09, 0x09,
+  0x70, 0x37, 0x6d, 0x20, 0x70, 0x37, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x6b, 0x63, 0x73,
+  0x37, 0x2d, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x09,
+  0x09, 0x09, 0x70, 0x37, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x6b, 0x63, 0x73, 0x38, 0x09,
+  0x09, 0x09, 0x09, 0x70, 0x38, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x6b, 0x69, 0x78, 0x2d, 0x61,
+  0x74, 0x74, 0x72, 0x2d, 0x63, 0x65, 0x72, 0x74, 0x09, 0x09, 0x09, 0x61,
+  0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x70, 0x6b, 0x69, 0x78, 0x2d, 0x63, 0x65, 0x72, 0x74, 0x09,
+  0x09, 0x09, 0x09, 0x63, 0x65, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x6b, 0x69, 0x78, 0x2d,
+  0x63, 0x72, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x63, 0x72, 0x6c, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70,
+  0x6b, 0x69, 0x78, 0x2d, 0x70, 0x6b, 0x69, 0x70, 0x61, 0x74, 0x68, 0x09,
+  0x09, 0x09, 0x70, 0x6b, 0x69, 0x70, 0x61, 0x74, 0x68, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x6b,
+  0x69, 0x78, 0x63, 0x6d, 0x70, 0x09, 0x09, 0x09, 0x09, 0x70, 0x6b, 0x69,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x70, 0x6c, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09,
+  0x70, 0x6c, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x6f, 0x63, 0x2d, 0x73, 0x65,
+  0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70,
+  0x6f, 0x73, 0x74, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x09, 0x09, 0x09,
+  0x09, 0x61, 0x69, 0x20, 0x65, 0x70, 0x73, 0x20, 0x70, 0x73, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x70, 0x72, 0x73, 0x2e, 0x61, 0x6c, 0x76, 0x65, 0x73, 0x74, 0x72,
+  0x61, 0x6e, 0x64, 0x2e, 0x74, 0x69, 0x74, 0x72, 0x61, 0x78, 0x2d, 0x73,
+  0x68, 0x65, 0x65, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x73, 0x2e, 0x63, 0x77, 0x77,
+  0x09, 0x09, 0x09, 0x09, 0x63, 0x77, 0x77, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x72,
+  0x73, 0x2e, 0x6e, 0x70, 0x72, 0x65, 0x6e, 0x64, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70,
+  0x72, 0x73, 0x2e, 0x70, 0x6c, 0x75, 0x63, 0x6b, 0x65, 0x72, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x70, 0x72, 0x73, 0x2e, 0x72, 0x64, 0x66, 0x2d, 0x78, 0x6d, 0x6c,
+  0x2d, 0x63, 0x72, 0x79, 0x70, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x73,
+  0x2e, 0x78, 0x73, 0x66, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x73, 0x6b,
+  0x63, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x70, 0x73, 0x6b,
+  0x63, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x71, 0x73, 0x69, 0x67, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x72, 0x64, 0x66, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x72,
+  0x64, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x6e, 0x66, 0x6f, 0x2b, 0x78,
+  0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x72, 0x69, 0x66, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x65,
+  0x6c, 0x61, 0x78, 0x2d, 0x6e, 0x67, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x61,
+  0x63, 0x74, 0x2d, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x09, 0x09, 0x72,
+  0x6e, 0x63, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2d,
+  0x70, 0x72, 0x69, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x65, 0x73,
+  0x6f, 0x75, 0x72, 0x63, 0x65, 0x2d, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x2b,
+  0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x72, 0x6c, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x65, 0x73,
+  0x6f, 0x75, 0x72, 0x63, 0x65, 0x2d, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x2d,
+  0x64, 0x69, 0x66, 0x66, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x72, 0x6c,
+  0x64, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x69, 0x73, 0x63, 0x6f, 0x73, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x72, 0x6c, 0x6d, 0x69, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x6c,
+  0x73, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2b, 0x78,
+  0x6d, 0x6c, 0x09, 0x09, 0x09, 0x72, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x70, 0x6b, 0x69,
+  0x2d, 0x67, 0x68, 0x6f, 0x73, 0x74, 0x62, 0x75, 0x73, 0x74, 0x65, 0x72,
+  0x73, 0x09, 0x09, 0x09, 0x67, 0x62, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x70, 0x6b, 0x69,
+  0x2d, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x09, 0x09, 0x09,
+  0x6d, 0x66, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x70, 0x6b, 0x69, 0x2d, 0x72, 0x6f, 0x61,
+  0x09, 0x09, 0x09, 0x09, 0x72, 0x6f, 0x61, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x70,
+  0x6b, 0x69, 0x2d, 0x75, 0x70, 0x64, 0x6f, 0x77, 0x6e, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x73,
+  0x64, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x72, 0x73, 0x64,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x72, 0x73, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09,
+  0x72, 0x73, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x74, 0x66, 0x09, 0x09, 0x09, 0x09, 0x09,
+  0x72, 0x74, 0x66, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x72, 0x74, 0x78, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x73, 0x61, 0x6d, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f,
+  0x6e, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x61, 0x6d, 0x6c,
+  0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2b, 0x78, 0x6d, 0x6c,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x73, 0x62, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09,
+  0x09, 0x73, 0x62, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x63, 0x76, 0x70, 0x2d, 0x63,
+  0x76, 0x2d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x09, 0x09, 0x09,
+  0x73, 0x63, 0x71, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x63, 0x76, 0x70, 0x2d, 0x63, 0x76, 0x2d,
+  0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x09, 0x09, 0x09, 0x73,
+  0x63, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x73, 0x63, 0x76, 0x70, 0x2d, 0x76, 0x70, 0x2d, 0x72,
+  0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x09, 0x09, 0x09, 0x73, 0x70, 0x71,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x73, 0x63, 0x76, 0x70, 0x2d, 0x76, 0x70, 0x2d, 0x72, 0x65, 0x73,
+  0x70, 0x6f, 0x6e, 0x73, 0x65, 0x09, 0x09, 0x09, 0x73, 0x70, 0x70, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x73, 0x64, 0x70, 0x09, 0x09, 0x09, 0x09, 0x09, 0x73, 0x64, 0x70, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x73, 0x65, 0x74, 0x2d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e,
+  0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x73, 0x65, 0x74, 0x2d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e,
+  0x74, 0x2d, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x09, 0x09, 0x73, 0x65, 0x74, 0x70, 0x61, 0x79, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73,
+  0x65, 0x74, 0x2d, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x65, 0x74, 0x2d, 0x72, 0x65, 0x67, 0x69,
+  0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x69, 0x6e, 0x69,
+  0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x09, 0x09, 0x73, 0x65, 0x74,
+  0x72, 0x65, 0x67, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x67, 0x6d, 0x6c, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x73, 0x67, 0x6d, 0x6c, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x2d, 0x63,
+  0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x68, 0x66, 0x2b, 0x78,
+  0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x73, 0x68, 0x66, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x73, 0x69, 0x65, 0x76, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x69, 0x6d, 0x70,
+  0x6c, 0x65, 0x2d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2b, 0x78, 0x6d,
+  0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x2d, 0x6d,
+  0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2d, 0x73, 0x75, 0x6d, 0x6d, 0x61,
+  0x72, 0x79, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x73,
+  0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
+  0x65, 0x72, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x6c, 0x61, 0x74, 0x65, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x73, 0x6d, 0x69, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x6d, 0x69, 0x6c, 0x2b, 0x78,
+  0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x73, 0x6d, 0x69, 0x20, 0x73, 0x6d,
+  0x69, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x6f, 0x61, 0x70, 0x2b, 0x66, 0x61,
+  0x73, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x65, 0x74, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x73, 0x6f, 0x61, 0x70, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x70, 0x61,
+  0x72, 0x71, 0x6c, 0x2d, 0x71, 0x75, 0x65, 0x72, 0x79, 0x09, 0x09, 0x09,
+  0x72, 0x71, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x73, 0x70, 0x61, 0x72, 0x71, 0x6c, 0x2d, 0x72, 0x65,
+  0x73, 0x75, 0x6c, 0x74, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09,
+  0x73, 0x72, 0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x70, 0x69, 0x72, 0x69, 0x74,
+  0x73, 0x2d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x73, 0x72, 0x67, 0x73, 0x09, 0x09, 0x09, 0x09, 0x67, 0x72, 0x61, 0x6d,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x73, 0x72, 0x67, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09,
+  0x09, 0x67, 0x72, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x72, 0x75, 0x2b, 0x78,
+  0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x73, 0x72, 0x75, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x73,
+  0x64, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x73, 0x73,
+  0x64, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x73, 0x73, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09,
+  0x09, 0x09, 0x09, 0x73, 0x73, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x61,
+  0x6d, 0x70, 0x2d, 0x61, 0x70, 0x65, 0x78, 0x2d, 0x75, 0x70, 0x64, 0x61,
+  0x74, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x61, 0x6d, 0x70, 0x2d, 0x61, 0x70,
+  0x65, 0x78, 0x2d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2d, 0x63, 0x6f,
+  0x6e, 0x66, 0x69, 0x72, 0x6d, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x61, 0x6d, 0x70,
+  0x2d, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2d, 0x75,
+  0x70, 0x64, 0x61, 0x74, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x61, 0x6d, 0x70,
+  0x2d, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2d, 0x75,
+  0x70, 0x64, 0x61, 0x74, 0x65, 0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72,
+  0x6d, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x61, 0x6d, 0x70, 0x2d, 0x65, 0x72, 0x72,
+  0x6f, 0x72, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x61, 0x6d, 0x70, 0x2d, 0x73, 0x65,
+  0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x2d, 0x61, 0x64, 0x6a, 0x75, 0x73,
+  0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x61, 0x6d, 0x70, 0x2d, 0x73, 0x65, 0x71,
+  0x75, 0x65, 0x6e, 0x63, 0x65, 0x2d, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74,
+  0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x74,
+  0x61, 0x6d, 0x70, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2d, 0x71,
+  0x75, 0x65, 0x72, 0x79, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x61, 0x6d, 0x70, 0x2d,
+  0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f,
+  0x6e, 0x73, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x61, 0x6d, 0x70, 0x2d, 0x75,
+  0x70, 0x64, 0x61, 0x74, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x61, 0x6d, 0x70,
+  0x2d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2d, 0x63, 0x6f, 0x6e, 0x66,
+  0x69, 0x72, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x65, 0x69, 0x2b, 0x78, 0x6d, 0x6c, 0x09,
+  0x09, 0x09, 0x09, 0x74, 0x65, 0x69, 0x20, 0x74, 0x65, 0x69, 0x63, 0x6f,
+  0x72, 0x70, 0x75, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x68, 0x72, 0x61, 0x75, 0x64, 0x2b,
+  0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x74, 0x66, 0x69, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2d, 0x71,
+  0x75, 0x65, 0x72, 0x79, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73,
+  0x74, 0x61, 0x6d, 0x70, 0x2d, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x74,
+  0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x2d, 0x64,
+  0x61, 0x74, 0x61, 0x09, 0x09, 0x09, 0x74, 0x73, 0x64, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x74, 0x76, 0x65, 0x2d, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x75, 0x6c, 0x70, 0x66, 0x65, 0x63, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x63, 0x61, 0x72, 0x64, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x65, 0x6d, 0x6d, 0x69, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x69, 0x76, 0x69, 0x64,
+  0x65, 0x6e, 0x63, 0x65, 0x2e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x66,
+  0x69, 0x6c, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x33, 0x67,
+  0x70, 0x70, 0x2e, 0x62, 0x73, 0x66, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x33, 0x67, 0x70, 0x70, 0x2e, 0x70, 0x69, 0x63, 0x2d,
+  0x62, 0x77, 0x2d, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x09, 0x09, 0x70, 0x6c,
+  0x62, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x33, 0x67, 0x70, 0x70, 0x2e, 0x70,
+  0x69, 0x63, 0x2d, 0x62, 0x77, 0x2d, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x09,
+  0x09, 0x70, 0x73, 0x62, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x33, 0x67, 0x70,
+  0x70, 0x2e, 0x70, 0x69, 0x63, 0x2d, 0x62, 0x77, 0x2d, 0x76, 0x61, 0x72,
+  0x09, 0x09, 0x09, 0x70, 0x76, 0x62, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x33, 0x67, 0x70, 0x70, 0x2e, 0x73, 0x6d, 0x73, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x33, 0x67, 0x70, 0x70, 0x32, 0x2e, 0x62, 0x63,
+  0x6d, 0x63, 0x73, 0x69, 0x6e, 0x66, 0x6f, 0x2b, 0x78, 0x6d, 0x6c, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x33, 0x67, 0x70, 0x70, 0x32, 0x2e,
+  0x73, 0x6d, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x33, 0x67, 0x70, 0x70,
+  0x32, 0x2e, 0x74, 0x63, 0x61, 0x70, 0x09, 0x09, 0x09, 0x74, 0x63, 0x61,
+  0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x33, 0x6d, 0x2e, 0x70, 0x6f, 0x73,
+  0x74, 0x2d, 0x69, 0x74, 0x2d, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x09, 0x09,
+  0x70, 0x77, 0x6e, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x63, 0x63, 0x70,
+  0x61, 0x63, 0x2e, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x79, 0x2e, 0x61, 0x73,
+  0x6f, 0x09, 0x09, 0x61, 0x73, 0x6f, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61,
+  0x63, 0x63, 0x70, 0x61, 0x63, 0x2e, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x79,
+  0x2e, 0x69, 0x6d, 0x70, 0x09, 0x09, 0x69, 0x6d, 0x70, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x61, 0x63, 0x75, 0x63, 0x6f, 0x62, 0x6f, 0x6c, 0x09, 0x09,
+  0x09, 0x61, 0x63, 0x75, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x63, 0x75,
+  0x63, 0x6f, 0x72, 0x70, 0x09, 0x09, 0x09, 0x09, 0x61, 0x74, 0x63, 0x20,
+  0x61, 0x63, 0x75, 0x74, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x64,
+  0x6f, 0x62, 0x65, 0x2e, 0x61, 0x69, 0x72, 0x2d, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x69, 0x6e, 0x73, 0x74,
+  0x61, 0x6c, 0x6c, 0x65, 0x72, 0x2d, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67,
+  0x65, 0x2b, 0x7a, 0x69, 0x70, 0x09, 0x61, 0x69, 0x72, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x61, 0x64, 0x6f, 0x62, 0x65, 0x2e, 0x66, 0x6f, 0x72, 0x6d,
+  0x73, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6c, 0x2e, 0x66, 0x63, 0x64,
+  0x74, 0x09, 0x09, 0x66, 0x63, 0x64, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x61, 0x64, 0x6f, 0x62, 0x65, 0x2e, 0x66, 0x78, 0x70, 0x09, 0x09, 0x09,
+  0x66, 0x78, 0x70, 0x20, 0x66, 0x78, 0x70, 0x6c, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x61, 0x64, 0x6f, 0x62, 0x65, 0x2e, 0x70, 0x61, 0x72,
+  0x74, 0x69, 0x61, 0x6c, 0x2d, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x61, 0x64, 0x6f, 0x62, 0x65, 0x2e, 0x78, 0x64,
+  0x70, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x78, 0x64, 0x70, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x61, 0x64, 0x6f, 0x62, 0x65, 0x2e, 0x78, 0x66,
+  0x64, 0x66, 0x09, 0x09, 0x09, 0x78, 0x66, 0x64, 0x66, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x61, 0x65, 0x74, 0x68, 0x65, 0x72, 0x2e, 0x69,
+  0x6d, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x68, 0x2d,
+  0x62, 0x61, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x61, 0x68, 0x65, 0x61, 0x64, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x09,
+  0x09, 0x09, 0x61, 0x68, 0x65, 0x61, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x61, 0x69, 0x72, 0x7a, 0x69, 0x70, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73,
+  0x65, 0x63, 0x75, 0x72, 0x65, 0x2e, 0x61, 0x7a, 0x66, 0x09, 0x09, 0x61,
+  0x7a, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x69, 0x72, 0x7a, 0x69,
+  0x70, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65,
+  0x2e, 0x61, 0x7a, 0x73, 0x09, 0x09, 0x61, 0x7a, 0x73, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x61, 0x6d, 0x61, 0x7a, 0x6f, 0x6e, 0x2e, 0x65, 0x62, 0x6f,
+  0x6f, 0x6b, 0x09, 0x09, 0x09, 0x61, 0x7a, 0x77, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x61, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6e, 0x64, 0x79, 0x6e,
+  0x61, 0x6d, 0x69, 0x63, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x09, 0x09, 0x61,
+  0x63, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x6d, 0x69, 0x67, 0x61,
+  0x2e, 0x61, 0x6d, 0x69, 0x09, 0x09, 0x09, 0x61, 0x6d, 0x69, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x6d, 0x75, 0x6e, 0x64, 0x73, 0x65,
+  0x6e, 0x2e, 0x6d, 0x61, 0x7a, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x2e, 0x70,
+  0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2d, 0x61, 0x72, 0x63, 0x68, 0x69,
+  0x76, 0x65, 0x09, 0x09, 0x61, 0x70, 0x6b, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x61, 0x6e, 0x73, 0x65, 0x72, 0x2d, 0x77, 0x65, 0x62, 0x2d, 0x63, 0x65,
+  0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2d, 0x69, 0x73,
+  0x73, 0x75, 0x65, 0x2d, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x09, 0x63, 0x69, 0x69, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61,
+  0x6e, 0x73, 0x65, 0x72, 0x2d, 0x77, 0x65, 0x62, 0x2d, 0x66, 0x75, 0x6e,
+  0x64, 0x73, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2d,
+  0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x09, 0x66,
+  0x74, 0x69, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x6e, 0x74, 0x69, 0x78,
+  0x2e, 0x67, 0x61, 0x6d, 0x65, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e,
+  0x65, 0x6e, 0x74, 0x09, 0x09, 0x61, 0x74, 0x78, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x61, 0x70, 0x70, 0x6c, 0x65, 0x2e, 0x69, 0x6e, 0x73, 0x74, 0x61,
+  0x6c, 0x6c, 0x65, 0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x6d, 0x70,
+  0x6b, 0x67, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x65,
+  0x2e, 0x6d, 0x70, 0x65, 0x67, 0x75, 0x72, 0x6c, 0x09, 0x09, 0x09, 0x6d,
+  0x33, 0x75, 0x38, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x72,
+  0x61, 0x73, 0x74, 0x72, 0x61, 0x2e, 0x73, 0x77, 0x69, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x61, 0x72, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x65, 0x74, 0x77,
+  0x6f, 0x72, 0x6b, 0x73, 0x2e, 0x73, 0x77, 0x69, 0x09, 0x09, 0x73, 0x77,
+  0x69, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x73, 0x74, 0x72, 0x61, 0x65,
+  0x61, 0x2d, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x2e, 0x69,
+  0x6f, 0x74, 0x61, 0x09, 0x09, 0x69, 0x6f, 0x74, 0x61, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68,
+  0x09, 0x09, 0x09, 0x61, 0x65, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x61, 0x75, 0x74, 0x6f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x76, 0x69, 0x73, 0x74,
+  0x61, 0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x62,
+  0x6c, 0x75, 0x65, 0x69, 0x63, 0x65, 0x2e, 0x6d, 0x75, 0x6c, 0x74, 0x69,
+  0x70, 0x61, 0x73, 0x73, 0x09, 0x09, 0x6d, 0x70, 0x6d, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x74, 0x6f, 0x6f, 0x74,
+  0x68, 0x2e, 0x65, 0x70, 0x2e, 0x6f, 0x6f, 0x62, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x62, 0x6d, 0x69, 0x09, 0x09, 0x09, 0x09, 0x62, 0x6d, 0x69, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73,
+  0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x09, 0x09, 0x09, 0x72, 0x65,
+  0x70, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x61, 0x62, 0x2d,
+  0x6a, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x2d, 0x63, 0x70, 0x64, 0x6c,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x61, 0x6e, 0x6f, 0x6e,
+  0x2d, 0x6c, 0x69, 0x70, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x63, 0x65, 0x6e, 0x64, 0x69, 0x6f, 0x2e, 0x74, 0x68, 0x69, 0x6e, 0x6c,
+  0x69, 0x6e, 0x63, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x63, 0x6f,
+  0x6e, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x68, 0x65, 0x6d, 0x64,
+  0x72, 0x61, 0x77, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x63, 0x64,
+  0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x68, 0x69, 0x70,
+  0x6e, 0x75, 0x74, 0x73, 0x2e, 0x6b, 0x61, 0x72, 0x61, 0x6f, 0x6b, 0x65,
+  0x2d, 0x6d, 0x6d, 0x64, 0x09, 0x09, 0x6d, 0x6d, 0x64, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x63, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x65, 0x6c, 0x6c, 0x61,
+  0x09, 0x09, 0x09, 0x63, 0x64, 0x79, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x63, 0x69, 0x72, 0x70, 0x61, 0x63, 0x6b, 0x2e, 0x69, 0x73, 0x64,
+  0x6e, 0x2d, 0x65, 0x78, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x6c,
+  0x61, 0x79, 0x6d, 0x6f, 0x72, 0x65, 0x09, 0x09, 0x09, 0x63, 0x6c, 0x61,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x6c, 0x6f, 0x61, 0x6e, 0x74, 0x6f,
+  0x2e, 0x72, 0x70, 0x39, 0x09, 0x09, 0x09, 0x72, 0x70, 0x39, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x63, 0x6c, 0x6f, 0x6e, 0x6b, 0x2e, 0x63, 0x34, 0x67,
+  0x72, 0x6f, 0x75, 0x70, 0x09, 0x09, 0x09, 0x63, 0x34, 0x67, 0x20, 0x63,
+  0x34, 0x64, 0x20, 0x63, 0x34, 0x66, 0x20, 0x63, 0x34, 0x70, 0x20, 0x63,
+  0x34, 0x75, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x6c, 0x75, 0x65, 0x74,
+  0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x61, 0x72, 0x74, 0x6f, 0x6d, 0x6f,
+  0x62, 0x69, 0x6c, 0x65, 0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x09,
+  0x09, 0x63, 0x31, 0x31, 0x61, 0x6d, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x63, 0x6c, 0x75, 0x65, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x63, 0x61,
+  0x72, 0x74, 0x6f, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x2d, 0x63, 0x6f,
+  0x6e, 0x66, 0x69, 0x67, 0x2d, 0x70, 0x6b, 0x67, 0x09, 0x63, 0x31, 0x31,
+  0x61, 0x6d, 0x7a, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x6f,
+  0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2b, 0x6a, 0x73, 0x6f,
+  0x6e, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
+  0x65, 0x72, 0x63, 0x65, 0x2d, 0x62, 0x61, 0x74, 0x74, 0x65, 0x6c, 0x6c,
+  0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
+  0x73, 0x70, 0x61, 0x63, 0x65, 0x09, 0x09, 0x09, 0x63, 0x73, 0x70, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x2e,
+  0x63, 0x6d, 0x73, 0x67, 0x09, 0x09, 0x09, 0x63, 0x64, 0x62, 0x63, 0x6d,
+  0x73, 0x67, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f,
+  0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x09, 0x09, 0x09, 0x63, 0x6d, 0x63,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x72, 0x69, 0x63, 0x6b, 0x2e, 0x63,
+  0x6c, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x09, 0x09, 0x09, 0x63, 0x6c, 0x6b,
+  0x78, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x72, 0x69, 0x63, 0x6b, 0x2e,
+  0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x6b, 0x65, 0x79, 0x62,
+  0x6f, 0x61, 0x72, 0x64, 0x09, 0x09, 0x63, 0x6c, 0x6b, 0x6b, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x63, 0x72, 0x69, 0x63, 0x6b, 0x2e, 0x63, 0x6c, 0x69,
+  0x63, 0x6b, 0x65, 0x72, 0x2e, 0x70, 0x61, 0x6c, 0x65, 0x74, 0x74, 0x65,
+  0x09, 0x09, 0x63, 0x6c, 0x6b, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63,
+  0x72, 0x69, 0x63, 0x6b, 0x2e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x72,
+  0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x09, 0x09, 0x63,
+  0x6c, 0x6b, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x72, 0x69, 0x63,
+  0x6b, 0x2e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x77, 0x6f,
+  0x72, 0x64, 0x62, 0x61, 0x6e, 0x6b, 0x09, 0x09, 0x63, 0x6c, 0x6b, 0x77,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61,
+  0x6c, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x77, 0x62, 0x73, 0x2b, 0x78,
+  0x6d, 0x6c, 0x09, 0x09, 0x77, 0x62, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x63, 0x74, 0x63, 0x2d, 0x70, 0x6f, 0x73, 0x6d, 0x6c, 0x09, 0x09, 0x09,
+  0x70, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x74,
+  0x63, 0x74, 0x2e, 0x77, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x63, 0x75, 0x70, 0x73, 0x2d, 0x70, 0x64, 0x66,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x75, 0x70, 0x73, 0x2d,
+  0x70, 0x6f, 0x73, 0x74, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x63, 0x75, 0x70, 0x73, 0x2d, 0x70, 0x70, 0x64, 0x09,
+  0x09, 0x09, 0x70, 0x70, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x63, 0x75, 0x70, 0x73, 0x2d, 0x72, 0x61, 0x73, 0x74, 0x65, 0x72, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x75, 0x70, 0x73, 0x2d, 0x72,
+  0x61, 0x77, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x75, 0x72,
+  0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x75, 0x72, 0x6c, 0x2e, 0x63,
+  0x61, 0x72, 0x09, 0x09, 0x09, 0x63, 0x61, 0x72, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x63, 0x75, 0x72, 0x6c, 0x2e, 0x70, 0x63, 0x75, 0x72, 0x6c, 0x09,
+  0x09, 0x09, 0x70, 0x63, 0x75, 0x72, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x63, 0x79, 0x62, 0x61, 0x6e, 0x6b, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x64, 0x61, 0x72, 0x74, 0x09, 0x09, 0x09, 0x09, 0x64, 0x61, 0x72,
+  0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x76,
+  0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x72, 0x64, 0x7a, 0x09, 0x09, 0x09,
+  0x72, 0x64, 0x7a, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x65, 0x63, 0x65,
+  0x2e, 0x64, 0x61, 0x74, 0x61, 0x09, 0x09, 0x09, 0x75, 0x76, 0x66, 0x20,
+  0x75, 0x76, 0x76, 0x66, 0x20, 0x75, 0x76, 0x64, 0x20, 0x75, 0x76, 0x76,
+  0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x65, 0x63, 0x65, 0x2e, 0x74,
+  0x74, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x75, 0x76,
+  0x74, 0x20, 0x75, 0x76, 0x76, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64,
+  0x65, 0x63, 0x65, 0x2e, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66,
+  0x69, 0x65, 0x64, 0x09, 0x09, 0x75, 0x76, 0x78, 0x20, 0x75, 0x76, 0x76,
+  0x78, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x65, 0x63, 0x65, 0x2e, 0x7a,
+  0x69, 0x70, 0x09, 0x09, 0x09, 0x75, 0x76, 0x7a, 0x20, 0x75, 0x76, 0x76,
+  0x7a, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x65, 0x6e, 0x6f, 0x76, 0x6f,
+  0x2e, 0x66, 0x63, 0x73, 0x65, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x2d,
+  0x6c, 0x69, 0x6e, 0x6b, 0x09, 0x09, 0x66, 0x65, 0x5f, 0x6c, 0x61, 0x75,
+  0x6e, 0x63, 0x68, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x69,
+  0x72, 0x2d, 0x62, 0x69, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2d, 0x64,
+  0x6c, 0x2d, 0x6e, 0x6f, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x64, 0x6e, 0x61, 0x09, 0x09, 0x09, 0x09, 0x64, 0x6e,
+  0x61, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x6f, 0x6c, 0x62, 0x79, 0x2e,
+  0x6d, 0x6c, 0x70, 0x09, 0x09, 0x09, 0x6d, 0x6c, 0x70, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x64, 0x6f, 0x6c, 0x62, 0x79, 0x2e, 0x6d, 0x6f,
+  0x62, 0x69, 0x6c, 0x65, 0x2e, 0x31, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x64, 0x6f, 0x6c, 0x62, 0x79, 0x2e, 0x6d, 0x6f, 0x62, 0x69, 0x6c,
+  0x65, 0x2e, 0x32, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x70, 0x67, 0x72,
+  0x61, 0x70, 0x68, 0x09, 0x09, 0x09, 0x09, 0x64, 0x70, 0x67, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x64, 0x72, 0x65, 0x61, 0x6d, 0x66, 0x61, 0x63, 0x74,
+  0x6f, 0x72, 0x79, 0x09, 0x09, 0x09, 0x64, 0x66, 0x61, 0x63, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x64, 0x73, 0x2d, 0x6b, 0x65, 0x79, 0x70, 0x6f, 0x69,
+  0x6e, 0x74, 0x09, 0x09, 0x09, 0x6b, 0x70, 0x78, 0x78, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x61, 0x69, 0x74, 0x09, 0x09, 0x09,
+  0x09, 0x61, 0x69, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64,
+  0x76, 0x62, 0x2e, 0x64, 0x76, 0x62, 0x6a, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x65, 0x73, 0x67, 0x63, 0x6f, 0x6e,
+  0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x64, 0x76, 0x62, 0x2e, 0x69, 0x70, 0x64, 0x63, 0x64, 0x66, 0x74,
+  0x6e, 0x6f, 0x74, 0x69, 0x66, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x69, 0x70,
+  0x64, 0x63, 0x65, 0x73, 0x67, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x69, 0x70,
+  0x64, 0x63, 0x65, 0x73, 0x67, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x32,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x69,
+  0x70, 0x64, 0x63, 0x65, 0x73, 0x67, 0x70, 0x64, 0x64, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x69, 0x70, 0x64, 0x63,
+  0x72, 0x6f, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x69, 0x70, 0x74, 0x76, 0x2e, 0x61,
+  0x6c, 0x66, 0x65, 0x63, 0x2d, 0x62, 0x61, 0x73, 0x65, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x69, 0x70, 0x74, 0x76,
+  0x2e, 0x61, 0x6c, 0x66, 0x65, 0x63, 0x2d, 0x65, 0x6e, 0x68, 0x61, 0x6e,
+  0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x64, 0x76, 0x62, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x2d, 0x61,
+  0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x2d, 0x72, 0x6f, 0x6f,
+  0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x64, 0x76, 0x62, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x2d, 0x63, 0x6f,
+  0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x6e, 0x6f,
+  0x74, 0x69, 0x66, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x76,
+  0x62, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x2d, 0x69, 0x61, 0x2d, 0x6d,
+  0x73, 0x67, 0x6c, 0x69, 0x73, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x6e, 0x6f, 0x74,
+  0x69, 0x66, 0x2d, 0x69, 0x61, 0x2d, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74,
+  0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x72, 0x65, 0x71, 0x75, 0x65,
+  0x73, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x64, 0x76, 0x62, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x2d, 0x69,
+  0x61, 0x2d, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x76,
+  0x62, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x2d, 0x69, 0x6e, 0x69, 0x74,
+  0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64,
+  0x76, 0x62, 0x2e, 0x70, 0x66, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64,
+  0x76, 0x62, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x09, 0x09,
+  0x09, 0x73, 0x76, 0x63, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64,
+  0x78, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x79, 0x6e, 0x61, 0x67,
+  0x65, 0x6f, 0x09, 0x09, 0x09, 0x09, 0x67, 0x65, 0x6f, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x65, 0x61, 0x73, 0x79, 0x6b, 0x61, 0x72, 0x61,
+  0x6f, 0x6b, 0x65, 0x2e, 0x63, 0x64, 0x67, 0x64, 0x6f, 0x77, 0x6e, 0x6c,
+  0x6f, 0x61, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x63,
+  0x64, 0x69, 0x73, 0x2d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x65, 0x63, 0x6f, 0x77, 0x69, 0x6e, 0x2e, 0x63, 0x68,
+  0x61, 0x72, 0x74, 0x09, 0x09, 0x09, 0x6d, 0x61, 0x67, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x65, 0x63, 0x6f, 0x77, 0x69, 0x6e, 0x2e, 0x66,
+  0x69, 0x6c, 0x65, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x63, 0x6f, 0x77, 0x69, 0x6e, 0x2e,
+  0x66, 0x69, 0x6c, 0x65, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x63, 0x6f, 0x77, 0x69, 0x6e, 0x2e,
+  0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x65, 0x63, 0x6f, 0x77, 0x69, 0x6e, 0x2e, 0x73, 0x65, 0x72, 0x69,
+  0x65, 0x73, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x65, 0x63, 0x6f, 0x77, 0x69, 0x6e, 0x2e, 0x73,
+  0x65, 0x72, 0x69, 0x65, 0x73, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x6d, 0x63, 0x6c, 0x69, 0x65,
+  0x6e, 0x74, 0x2e, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x72, 0x65, 0x71,
+  0x75, 0x65, 0x73, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x65, 0x6e, 0x6c, 0x69, 0x76, 0x65, 0x6e, 0x09, 0x09, 0x09, 0x09,
+  0x6e, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x70,
+  0x72, 0x69, 0x6e, 0x74, 0x73, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x2b, 0x78,
+  0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x70, 0x73, 0x6f, 0x6e,
+  0x2e, 0x65, 0x73, 0x66, 0x09, 0x09, 0x09, 0x65, 0x73, 0x66, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x65, 0x70, 0x73, 0x6f, 0x6e, 0x2e, 0x6d, 0x73, 0x66,
+  0x09, 0x09, 0x09, 0x6d, 0x73, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65,
+  0x70, 0x73, 0x6f, 0x6e, 0x2e, 0x71, 0x75, 0x69, 0x63, 0x6b, 0x61, 0x6e,
+  0x69, 0x6d, 0x65, 0x09, 0x09, 0x71, 0x61, 0x6d, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x65, 0x70, 0x73, 0x6f, 0x6e, 0x2e, 0x73, 0x61, 0x6c, 0x74, 0x09,
+  0x09, 0x09, 0x73, 0x6c, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x70,
+  0x73, 0x6f, 0x6e, 0x2e, 0x73, 0x73, 0x66, 0x09, 0x09, 0x09, 0x73, 0x73,
+  0x66, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x72, 0x69, 0x63,
+  0x73, 0x73, 0x6f, 0x6e, 0x2e, 0x71, 0x75, 0x69, 0x63, 0x6b, 0x63, 0x61,
+  0x6c, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x73, 0x7a, 0x69, 0x67,
+  0x6e, 0x6f, 0x33, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x65, 0x73,
+  0x33, 0x20, 0x65, 0x74, 0x33, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x65, 0x74, 0x73, 0x69, 0x2e, 0x61, 0x6f, 0x63, 0x2b, 0x78, 0x6d, 0x6c,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x74, 0x73, 0x69, 0x2e,
+  0x63, 0x75, 0x67, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x65, 0x74, 0x73, 0x69, 0x2e, 0x69, 0x70, 0x74, 0x76, 0x63,
+  0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x74, 0x73, 0x69, 0x2e, 0x69, 0x70,
+  0x74, 0x76, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x74,
+  0x73, 0x69, 0x2e, 0x69, 0x70, 0x74, 0x76, 0x70, 0x72, 0x6f, 0x66, 0x69,
+  0x6c, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x65, 0x74, 0x73, 0x69, 0x2e, 0x69, 0x70, 0x74, 0x76, 0x73, 0x61,
+  0x64, 0x2d, 0x62, 0x63, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x65, 0x74, 0x73, 0x69, 0x2e, 0x69, 0x70, 0x74, 0x76,
+  0x73, 0x61, 0x64, 0x2d, 0x63, 0x6f, 0x64, 0x2b, 0x78, 0x6d, 0x6c, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x74, 0x73, 0x69, 0x2e, 0x69,
+  0x70, 0x74, 0x76, 0x73, 0x61, 0x64, 0x2d, 0x6e, 0x70, 0x76, 0x72, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x74,
+  0x73, 0x69, 0x2e, 0x69, 0x70, 0x74, 0x76, 0x73, 0x65, 0x72, 0x76, 0x69,
+  0x63, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x65, 0x74, 0x73, 0x69, 0x2e, 0x69, 0x70, 0x74, 0x76, 0x73, 0x79,
+  0x6e, 0x63, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x65, 0x74, 0x73, 0x69, 0x2e, 0x69, 0x70, 0x74, 0x76, 0x75, 0x65,
+  0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x74, 0x73, 0x69, 0x2e, 0x6d,
+  0x63, 0x69, 0x64, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x65, 0x74, 0x73, 0x69, 0x2e, 0x6f, 0x76, 0x65, 0x72, 0x6c,
+  0x6f, 0x61, 0x64, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d,
+  0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2d, 0x64, 0x61, 0x74, 0x61, 0x73,
+  0x65, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x65, 0x74, 0x73, 0x69, 0x2e, 0x73, 0x63, 0x69, 0x2b, 0x78, 0x6d,
+  0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x74, 0x73, 0x69,
+  0x2e, 0x73, 0x69, 0x6d, 0x73, 0x65, 0x72, 0x76, 0x73, 0x2b, 0x78, 0x6d,
+  0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x74, 0x73, 0x69,
+  0x2e, 0x74, 0x73, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x65, 0x74, 0x73, 0x69, 0x2e, 0x74, 0x73, 0x6c, 0x2e,
+  0x64, 0x65, 0x72, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x65, 0x75,
+  0x64, 0x6f, 0x72, 0x61, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x65, 0x7a, 0x70, 0x69, 0x78, 0x2d, 0x61, 0x6c, 0x62, 0x75,
+  0x6d, 0x09, 0x09, 0x09, 0x65, 0x7a, 0x32, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x65, 0x7a, 0x70, 0x69, 0x78, 0x2d, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67,
+  0x65, 0x09, 0x09, 0x09, 0x65, 0x7a, 0x33, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x66, 0x2d, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x2e, 0x6d,
+  0x6f, 0x62, 0x69, 0x6c, 0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x64,
+  0x66, 0x09, 0x09, 0x09, 0x09, 0x66, 0x64, 0x66, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x66, 0x64, 0x73, 0x6e, 0x2e, 0x6d, 0x73, 0x65, 0x65, 0x64, 0x09,
+  0x09, 0x09, 0x6d, 0x73, 0x65, 0x65, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x66, 0x64, 0x73, 0x6e, 0x2e, 0x73, 0x65, 0x65, 0x64, 0x09, 0x09, 0x09,
+  0x73, 0x65, 0x65, 0x64, 0x20, 0x64, 0x61, 0x74, 0x61, 0x6c, 0x65, 0x73,
+  0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x66, 0x73, 0x6e,
+  0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x69, 0x6e, 0x74,
+  0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x6c, 0x6f, 0x67, 0x72, 0x61,
+  0x70, 0x68, 0x69, 0x74, 0x09, 0x09, 0x09, 0x67, 0x70, 0x68, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x66, 0x6c, 0x75, 0x78, 0x74, 0x69, 0x6d, 0x65, 0x2e,
+  0x63, 0x6c, 0x69, 0x70, 0x09, 0x09, 0x09, 0x66, 0x74, 0x63, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x66, 0x6f,
+  0x6e, 0x74, 0x66, 0x6f, 0x72, 0x67, 0x65, 0x2d, 0x73, 0x66, 0x64, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x6d, 0x61, 0x6b,
+  0x65, 0x72, 0x09, 0x09, 0x09, 0x66, 0x6d, 0x20, 0x66, 0x72, 0x61, 0x6d,
+  0x65, 0x20, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x20, 0x62, 0x6f, 0x6f, 0x6b,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x72, 0x6f, 0x67, 0x61, 0x6e, 0x73,
+  0x2e, 0x66, 0x6e, 0x63, 0x09, 0x09, 0x09, 0x66, 0x6e, 0x63, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x66, 0x72, 0x6f, 0x67, 0x61, 0x6e, 0x73, 0x2e, 0x6c,
+  0x74, 0x66, 0x09, 0x09, 0x09, 0x6c, 0x74, 0x66, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x66, 0x73, 0x63, 0x2e, 0x77, 0x65, 0x62, 0x6c, 0x61, 0x75, 0x6e,
+  0x63, 0x68, 0x09, 0x09, 0x09, 0x66, 0x73, 0x63, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x66, 0x75, 0x6a, 0x69, 0x74, 0x73, 0x75, 0x2e, 0x6f, 0x61, 0x73,
+  0x79, 0x73, 0x09, 0x09, 0x09, 0x6f, 0x61, 0x73, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x66, 0x75, 0x6a, 0x69, 0x74, 0x73, 0x75, 0x2e, 0x6f, 0x61, 0x73,
+  0x79, 0x73, 0x32, 0x09, 0x09, 0x09, 0x6f, 0x61, 0x32, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x66, 0x75, 0x6a, 0x69, 0x74, 0x73, 0x75, 0x2e, 0x6f, 0x61,
+  0x73, 0x79, 0x73, 0x33, 0x09, 0x09, 0x09, 0x6f, 0x61, 0x33, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x66, 0x75, 0x6a, 0x69, 0x74, 0x73, 0x75, 0x2e, 0x6f,
+  0x61, 0x73, 0x79, 0x73, 0x67, 0x70, 0x09, 0x09, 0x09, 0x66, 0x67, 0x35,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x75, 0x6a, 0x69, 0x74, 0x73, 0x75,
+  0x2e, 0x6f, 0x61, 0x73, 0x79, 0x73, 0x70, 0x72, 0x73, 0x09, 0x09, 0x62,
+  0x68, 0x32, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x75, 0x6a,
+  0x69, 0x78, 0x65, 0x72, 0x6f, 0x78, 0x2e, 0x61, 0x72, 0x74, 0x2d, 0x65,
+  0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x75, 0x6a, 0x69,
+  0x78, 0x65, 0x72, 0x6f, 0x78, 0x2e, 0x61, 0x72, 0x74, 0x34, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x75, 0x6a, 0x69, 0x78, 0x65, 0x72,
+  0x6f, 0x78, 0x2e, 0x68, 0x62, 0x70, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x66, 0x75, 0x6a, 0x69, 0x78, 0x65, 0x72, 0x6f, 0x78, 0x2e, 0x64, 0x64,
+  0x64, 0x09, 0x09, 0x09, 0x64, 0x64, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x66, 0x75, 0x6a, 0x69, 0x78, 0x65, 0x72, 0x6f, 0x78, 0x2e, 0x64, 0x6f,
+  0x63, 0x75, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x09, 0x09, 0x78, 0x64, 0x77,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x75, 0x6a, 0x69, 0x78, 0x65, 0x72,
+  0x6f, 0x78, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x77, 0x6f, 0x72, 0x6b, 0x73,
+  0x2e, 0x62, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x09, 0x78, 0x62, 0x64, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x75, 0x74, 0x2d, 0x6d, 0x69,
+  0x73, 0x6e, 0x65, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x75, 0x7a,
+  0x7a, 0x79, 0x73, 0x68, 0x65, 0x65, 0x74, 0x09, 0x09, 0x09, 0x66, 0x7a,
+  0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x65, 0x6e, 0x6f, 0x6d, 0x61,
+  0x74, 0x69, 0x78, 0x2e, 0x74, 0x75, 0x78, 0x65, 0x64, 0x6f, 0x09, 0x09,
+  0x74, 0x78, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x65,
+  0x6f, 0x63, 0x75, 0x62, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x67, 0x65, 0x6f, 0x67, 0x65, 0x62, 0x72, 0x61, 0x2e, 0x66,
+  0x69, 0x6c, 0x65, 0x09, 0x09, 0x09, 0x67, 0x67, 0x62, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x67, 0x65, 0x6f, 0x67, 0x65, 0x62, 0x72, 0x61, 0x2e, 0x74,
+  0x6f, 0x6f, 0x6c, 0x09, 0x09, 0x09, 0x67, 0x67, 0x74, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x67, 0x65, 0x6f, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2d, 0x65,
+  0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x09, 0x09, 0x67, 0x65, 0x78,
+  0x20, 0x67, 0x72, 0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x65, 0x6f,
+  0x6e, 0x65, 0x78, 0x74, 0x09, 0x09, 0x09, 0x09, 0x67, 0x78, 0x74, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x67, 0x65, 0x6f, 0x70, 0x6c, 0x61, 0x6e, 0x09,
+  0x09, 0x09, 0x09, 0x67, 0x32, 0x77, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67,
+  0x65, 0x6f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x09, 0x09, 0x09, 0x67, 0x33,
+  0x77, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x6c, 0x6f, 0x62,
+  0x61, 0x6c, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x63,
+  0x61, 0x72, 0x64, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d,
+  0x6d, 0x67, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x6c,
+  0x6f, 0x62, 0x61, 0x6c, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
+  0x2e, 0x63, 0x61, 0x72, 0x64, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
+  0x74, 0x2d, 0x6d, 0x67, 0x74, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+  0x73, 0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x6d, 0x78, 0x09, 0x09,
+  0x09, 0x09, 0x67, 0x6d, 0x78, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x6f,
+  0x6f, 0x67, 0x6c, 0x65, 0x2d, 0x65, 0x61, 0x72, 0x74, 0x68, 0x2e, 0x6b,
+  0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x6b, 0x6d, 0x6c, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2d, 0x65,
+  0x61, 0x72, 0x74, 0x68, 0x2e, 0x6b, 0x6d, 0x7a, 0x09, 0x09, 0x6b, 0x6d,
+  0x7a, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x72, 0x61, 0x66, 0x65, 0x71,
+  0x09, 0x09, 0x09, 0x09, 0x67, 0x71, 0x66, 0x20, 0x67, 0x71, 0x73, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x72, 0x69, 0x64, 0x6d, 0x70,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x2d,
+  0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x09, 0x09, 0x09, 0x67, 0x61,
+  0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65,
+  0x2d, 0x68, 0x65, 0x6c, 0x70, 0x09, 0x09, 0x09, 0x67, 0x68, 0x66, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x2d, 0x69,
+  0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2d, 0x6d, 0x65, 0x73, 0x73,
+  0x61, 0x67, 0x65, 0x09, 0x09, 0x67, 0x69, 0x6d, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x2d, 0x69, 0x6e, 0x6a, 0x65,
+  0x63, 0x74, 0x6f, 0x72, 0x09, 0x09, 0x09, 0x67, 0x72, 0x76, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x2d, 0x74, 0x6f,
+  0x6f, 0x6c, 0x2d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x09, 0x09,
+  0x67, 0x74, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x72, 0x6f, 0x6f,
+  0x76, 0x65, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x2d, 0x74, 0x65, 0x6d, 0x70,
+  0x6c, 0x61, 0x74, 0x65, 0x09, 0x09, 0x74, 0x70, 0x6c, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x2d, 0x76, 0x63, 0x61,
+  0x72, 0x64, 0x09, 0x09, 0x09, 0x76, 0x63, 0x67, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x68, 0x61, 0x6c, 0x2b, 0x6a, 0x73, 0x6f, 0x6e, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x68, 0x61, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09,
+  0x09, 0x09, 0x09, 0x68, 0x61, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x68,
+  0x61, 0x6e, 0x64, 0x68, 0x65, 0x6c, 0x64, 0x2d, 0x65, 0x6e, 0x74, 0x65,
+  0x72, 0x74, 0x61, 0x69, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2b, 0x78, 0x6d,
+  0x6c, 0x09, 0x7a, 0x6d, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x68, 0x62,
+  0x63, 0x69, 0x09, 0x09, 0x09, 0x09, 0x68, 0x62, 0x63, 0x69, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x68, 0x63, 0x6c, 0x2d, 0x62, 0x69, 0x72,
+  0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x68,
+  0x68, 0x65, 0x2e, 0x6c, 0x65, 0x73, 0x73, 0x6f, 0x6e, 0x2d, 0x70, 0x6c,
+  0x61, 0x79, 0x65, 0x72, 0x09, 0x09, 0x6c, 0x65, 0x73, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x68, 0x70, 0x2d, 0x68, 0x70, 0x67, 0x6c, 0x09, 0x09, 0x09,
+  0x09, 0x68, 0x70, 0x67, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x68, 0x70,
+  0x2d, 0x68, 0x70, 0x69, 0x64, 0x09, 0x09, 0x09, 0x09, 0x68, 0x70, 0x69,
+  0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x68, 0x70, 0x2d, 0x68, 0x70, 0x73,
+  0x09, 0x09, 0x09, 0x09, 0x68, 0x70, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x68, 0x70, 0x2d, 0x6a, 0x6c, 0x79, 0x74, 0x09, 0x09, 0x09, 0x09, 0x6a,
+  0x6c, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x68, 0x70, 0x2d, 0x70, 0x63,
+  0x6c, 0x09, 0x09, 0x09, 0x09, 0x70, 0x63, 0x6c, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x68, 0x70, 0x2d, 0x70, 0x63, 0x6c, 0x78, 0x6c, 0x09, 0x09, 0x09,
+  0x70, 0x63, 0x6c, 0x78, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x68, 0x74, 0x74, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x68, 0x79, 0x64, 0x72, 0x6f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x78,
+  0x2e, 0x73, 0x6f, 0x66, 0x2d, 0x64, 0x61, 0x74, 0x61, 0x09, 0x09, 0x73,
+  0x66, 0x64, 0x2d, 0x68, 0x64, 0x73, 0x74, 0x78, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x68, 0x7a, 0x6e, 0x2d, 0x33, 0x64, 0x2d, 0x63, 0x72,
+  0x6f, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x69, 0x62, 0x6d, 0x2e, 0x61, 0x66, 0x70, 0x6c, 0x69, 0x6e,
+  0x65, 0x64, 0x61, 0x74, 0x61, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x69, 0x62, 0x6d, 0x2e, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x6f, 0x6e,
+  0x69, 0x63, 0x2d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x69, 0x62, 0x6d, 0x2e, 0x6d, 0x69, 0x6e, 0x69, 0x70, 0x61, 0x79,
+  0x09, 0x09, 0x09, 0x6d, 0x70, 0x79, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69,
+  0x62, 0x6d, 0x2e, 0x6d, 0x6f, 0x64, 0x63, 0x61, 0x70, 0x09, 0x09, 0x09,
+  0x61, 0x66, 0x70, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x61, 0x66, 0x70, 0x20,
+  0x6c, 0x69, 0x73, 0x74, 0x33, 0x38, 0x32, 0x30, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x69, 0x62, 0x6d, 0x2e, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2d,
+  0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x09, 0x09,
+  0x69, 0x72, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x62, 0x6d, 0x2e,
+  0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x61,
+  0x69, 0x6e, 0x65, 0x72, 0x09, 0x09, 0x73, 0x63, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x69, 0x63, 0x63, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x09,
+  0x09, 0x09, 0x69, 0x63, 0x63, 0x20, 0x69, 0x63, 0x6d, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x69, 0x67, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x09, 0x09,
+  0x09, 0x69, 0x67, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x6d, 0x6d,
+  0x65, 0x72, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2d, 0x69, 0x76, 0x70,
+  0x09, 0x09, 0x09, 0x69, 0x76, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69,
+  0x6d, 0x6d, 0x65, 0x72, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2d, 0x69,
+  0x76, 0x75, 0x09, 0x09, 0x09, 0x69, 0x76, 0x75, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x63,
+  0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x72, 0x6d, 0x73, 0x2b, 0x78,
+  0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x6e, 0x66,
+  0x6f, 0x72, 0x6d, 0x69, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e,
+  0x61, 0x72, 0x79, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x6e,
+  0x66, 0x6f, 0x74, 0x65, 0x63, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x6a, 0x65,
+  0x63, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x6e, 0x66,
+  0x6f, 0x74, 0x65, 0x63, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
+  0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x69, 0x6e, 0x6e, 0x6f, 0x70, 0x61, 0x74, 0x68, 0x2e, 0x77, 0x61, 0x6d,
+  0x70, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x6e, 0x73, 0x6f, 0x72,
+  0x73, 0x2e, 0x69, 0x67, 0x6d, 0x09, 0x09, 0x09, 0x69, 0x67, 0x6d, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e,
+  0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x6e, 0x65, 0x74, 0x09, 0x09, 0x78, 0x70,
+  0x77, 0x20, 0x78, 0x70, 0x78, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x6e,
+  0x74, 0x65, 0x72, 0x67, 0x65, 0x6f, 0x09, 0x09, 0x09, 0x69, 0x32, 0x67,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72,
+  0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x62, 0x6f,
+  0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x6e, 0x74, 0x65,
+  0x72, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x6e, 0x63, 0x70, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x69, 0x6e, 0x74, 0x75, 0x2e, 0x71, 0x62, 0x6f,
+  0x09, 0x09, 0x09, 0x71, 0x62, 0x6f, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69,
+  0x6e, 0x74, 0x75, 0x2e, 0x71, 0x66, 0x78, 0x09, 0x09, 0x09, 0x71, 0x66,
+  0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x70, 0x74, 0x63,
+  0x2e, 0x67, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x69,
+  0x74, 0x65, 0x6d, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x69, 0x70, 0x74, 0x63, 0x2e, 0x67, 0x32, 0x2e, 0x6b, 0x6e,
+  0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x69, 0x74, 0x65, 0x6d, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x70,
+  0x74, 0x63, 0x2e, 0x67, 0x32, 0x2e, 0x6e, 0x65, 0x77, 0x73, 0x69, 0x74,
+  0x65, 0x6d, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x69, 0x70, 0x74, 0x63, 0x2e, 0x67, 0x32, 0x2e, 0x6e, 0x65, 0x77,
+  0x73, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2b, 0x78, 0x6d, 0x6c,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x70, 0x74, 0x63, 0x2e,
+  0x67, 0x32, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x69, 0x74,
+  0x65, 0x6d, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x69, 0x70, 0x74, 0x63, 0x2e, 0x67, 0x32, 0x2e, 0x70, 0x6c, 0x61,
+  0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x69, 0x74, 0x65, 0x6d, 0x2b, 0x78, 0x6d,
+  0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x70, 0x75, 0x6e, 0x70, 0x6c,
+  0x75, 0x67, 0x67, 0x65, 0x64, 0x2e, 0x72, 0x63, 0x70, 0x72, 0x6f, 0x66,
+  0x69, 0x6c, 0x65, 0x09, 0x09, 0x72, 0x63, 0x70, 0x72, 0x6f, 0x66, 0x69,
+  0x6c, 0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x72, 0x65, 0x70, 0x6f,
+  0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61,
+  0x67, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x69, 0x72, 0x70, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x69, 0x73, 0x2d, 0x78, 0x70, 0x72, 0x09, 0x09,
+  0x09, 0x09, 0x78, 0x70, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x73,
+  0x61, 0x63, 0x2e, 0x66, 0x63, 0x73, 0x09, 0x09, 0x09, 0x66, 0x63, 0x73,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6a, 0x61, 0x6d, 0x09, 0x09, 0x09, 0x09,
+  0x6a, 0x61, 0x6d, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6a, 0x61,
+  0x70, 0x61, 0x6e, 0x6e, 0x65, 0x74, 0x2d, 0x64, 0x69, 0x72, 0x65, 0x63,
+  0x74, 0x6f, 0x72, 0x79, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6a, 0x61, 0x70, 0x61, 0x6e,
+  0x6e, 0x65, 0x74, 0x2d, 0x6a, 0x70, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x65,
+  0x2d, 0x77, 0x61, 0x6b, 0x65, 0x75, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6a, 0x61, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x74, 0x2d, 0x70,
+  0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x2d, 0x77, 0x61, 0x6b, 0x65, 0x75,
+  0x70, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6a, 0x61, 0x70, 0x61,
+  0x6e, 0x6e, 0x65, 0x74, 0x2d, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x6a, 0x61, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x74, 0x2d, 0x72, 0x65, 0x67,
+  0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x77, 0x61,
+  0x6b, 0x65, 0x75, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6a,
+  0x61, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x74, 0x2d, 0x73, 0x65, 0x74, 0x73,
+  0x74, 0x6f, 0x72, 0x65, 0x2d, 0x77, 0x61, 0x6b, 0x65, 0x75, 0x70, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6a, 0x61, 0x70, 0x61, 0x6e, 0x6e,
+  0x65, 0x74, 0x2d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6a, 0x61,
+  0x70, 0x61, 0x6e, 0x6e, 0x65, 0x74, 0x2d, 0x76, 0x65, 0x72, 0x69, 0x66,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x77, 0x61, 0x6b, 0x65,
+  0x75, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6a, 0x63, 0x70, 0x2e, 0x6a,
+  0x61, 0x76, 0x61, 0x6d, 0x65, 0x2e, 0x6d, 0x69, 0x64, 0x6c, 0x65, 0x74,
+  0x2d, 0x72, 0x6d, 0x73, 0x09, 0x09, 0x72, 0x6d, 0x73, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6a, 0x69, 0x73, 0x70, 0x09, 0x09, 0x09, 0x09, 0x6a, 0x69,
+  0x73, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6a, 0x6f, 0x6f, 0x73, 0x74,
+  0x2e, 0x6a, 0x6f, 0x64, 0x61, 0x2d, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76,
+  0x65, 0x09, 0x09, 0x6a, 0x6f, 0x64, 0x61, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x6b, 0x61, 0x68, 0x6f, 0x6f, 0x74, 0x7a, 0x09, 0x09, 0x09, 0x09, 0x6b,
+  0x74, 0x7a, 0x20, 0x6b, 0x74, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6b,
+  0x64, 0x65, 0x2e, 0x6b, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x09, 0x09, 0x09,
+  0x6b, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6b,
+  0x64, 0x65, 0x2e, 0x6b, 0x63, 0x68, 0x61, 0x72, 0x74, 0x09, 0x09, 0x09,
+  0x63, 0x68, 0x72, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6b, 0x64, 0x65,
+  0x2e, 0x6b, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x09, 0x09, 0x09,
+  0x6b, 0x66, 0x6f, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6b, 0x64, 0x65, 0x2e,
+  0x6b, 0x69, 0x76, 0x69, 0x6f, 0x09, 0x09, 0x09, 0x66, 0x6c, 0x77, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6b, 0x64, 0x65, 0x2e, 0x6b, 0x6f, 0x6e, 0x74,
+  0x6f, 0x75, 0x72, 0x09, 0x09, 0x09, 0x6b, 0x6f, 0x6e, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6b, 0x64, 0x65, 0x2e, 0x6b, 0x70, 0x72, 0x65, 0x73, 0x65,
+  0x6e, 0x74, 0x65, 0x72, 0x09, 0x09, 0x09, 0x6b, 0x70, 0x72, 0x20, 0x6b,
+  0x70, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6b, 0x64, 0x65, 0x2e, 0x6b,
+  0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x09, 0x09, 0x09, 0x6b, 0x73, 0x70,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6b, 0x64, 0x65, 0x2e, 0x6b, 0x77, 0x6f,
+  0x72, 0x64, 0x09, 0x09, 0x09, 0x6b, 0x77, 0x64, 0x20, 0x6b, 0x77, 0x74,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6b, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x61,
+  0x61, 0x70, 0x70, 0x09, 0x09, 0x09, 0x68, 0x74, 0x6b, 0x65, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6b, 0x69, 0x64, 0x73, 0x70, 0x69, 0x72, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x09, 0x09, 0x09, 0x6b, 0x69, 0x61, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6b, 0x69, 0x6e, 0x61, 0x72, 0x09, 0x09, 0x09, 0x09, 0x6b,
+  0x6e, 0x65, 0x20, 0x6b, 0x6e, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6b,
+  0x6f, 0x61, 0x6e, 0x09, 0x09, 0x09, 0x09, 0x73, 0x6b, 0x70, 0x20, 0x73,
+  0x6b, 0x64, 0x20, 0x73, 0x6b, 0x74, 0x20, 0x73, 0x6b, 0x6d, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6b, 0x6f, 0x64, 0x61, 0x6b, 0x2d, 0x64, 0x65, 0x73,
+  0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x09, 0x09, 0x73, 0x73, 0x65,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6c, 0x61, 0x73, 0x2e, 0x6c, 0x61, 0x73,
+  0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x6c, 0x61, 0x73, 0x78, 0x6d,
+  0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6c, 0x69, 0x62, 0x65,
+  0x72, 0x74, 0x79, 0x2d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6c, 0x6c, 0x61, 0x6d,
+  0x61, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x2e, 0x6c, 0x69,
+  0x66, 0x65, 0x2d, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x64,
+  0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x09, 0x6c, 0x62, 0x64, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6c, 0x6c, 0x61, 0x6d, 0x61, 0x67, 0x72, 0x61, 0x70,
+  0x68, 0x69, 0x63, 0x73, 0x2e, 0x6c, 0x69, 0x66, 0x65, 0x2d, 0x62, 0x61,
+  0x6c, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e,
+  0x67, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x6c, 0x62, 0x65, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6c, 0x6f, 0x74, 0x75, 0x73, 0x2d, 0x31, 0x2d, 0x32,
+  0x2d, 0x33, 0x09, 0x09, 0x09, 0x31, 0x32, 0x33, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x6c, 0x6f, 0x74, 0x75, 0x73, 0x2d, 0x61, 0x70, 0x70, 0x72, 0x6f,
+  0x61, 0x63, 0x68, 0x09, 0x09, 0x09, 0x61, 0x70, 0x72, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6c, 0x6f, 0x74, 0x75, 0x73, 0x2d, 0x66, 0x72, 0x65, 0x65,
+  0x6c, 0x61, 0x6e, 0x63, 0x65, 0x09, 0x09, 0x09, 0x70, 0x72, 0x65, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6c, 0x6f, 0x74, 0x75, 0x73, 0x2d, 0x6e, 0x6f,
+  0x74, 0x65, 0x73, 0x09, 0x09, 0x09, 0x6e, 0x73, 0x66, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6c, 0x6f, 0x74, 0x75, 0x73, 0x2d, 0x6f, 0x72, 0x67, 0x61,
+  0x6e, 0x69, 0x7a, 0x65, 0x72, 0x09, 0x09, 0x09, 0x6f, 0x72, 0x67, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6c, 0x6f, 0x74, 0x75, 0x73, 0x2d, 0x73, 0x63,
+  0x72, 0x65, 0x65, 0x6e, 0x63, 0x61, 0x6d, 0x09, 0x09, 0x09, 0x73, 0x63,
+  0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6c, 0x6f, 0x74, 0x75, 0x73, 0x2d,
+  0x77, 0x6f, 0x72, 0x64, 0x70, 0x72, 0x6f, 0x09, 0x09, 0x09, 0x6c, 0x77,
+  0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x61, 0x63, 0x70, 0x6f, 0x72,
+  0x74, 0x73, 0x2e, 0x70, 0x6f, 0x72, 0x74, 0x70, 0x6b, 0x67, 0x09, 0x09,
+  0x70, 0x6f, 0x72, 0x74, 0x70, 0x6b, 0x67, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6d, 0x61, 0x72, 0x6c, 0x69, 0x6e, 0x2e, 0x64, 0x72, 0x6d,
+  0x2e, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
+  0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d,
+  0x61, 0x72, 0x6c, 0x69, 0x6e, 0x2e, 0x64, 0x72, 0x6d, 0x2e, 0x63, 0x6f,
+  0x6e, 0x66, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2b, 0x78, 0x6d, 0x6c, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x61, 0x72, 0x6c, 0x69, 0x6e,
+  0x2e, 0x64, 0x72, 0x6d, 0x2e, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65,
+  0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d,
+  0x61, 0x72, 0x6c, 0x69, 0x6e, 0x2e, 0x64, 0x72, 0x6d, 0x2e, 0x6d, 0x64,
+  0x63, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x63, 0x64, 0x09, 0x09,
+  0x09, 0x09, 0x6d, 0x63, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x65,
+  0x64, 0x63, 0x61, 0x6c, 0x63, 0x64, 0x61, 0x74, 0x61, 0x09, 0x09, 0x09,
+  0x6d, 0x63, 0x31, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x65, 0x64, 0x69,
+  0x61, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x63, 0x64, 0x6b,
+  0x65, 0x79, 0x09, 0x09, 0x63, 0x64, 0x6b, 0x65, 0x79, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x65, 0x72, 0x69, 0x64, 0x69, 0x61, 0x6e,
+  0x2d, 0x73, 0x6c, 0x69, 0x6e, 0x67, 0x73, 0x68, 0x6f, 0x74, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6d, 0x66, 0x65, 0x72, 0x09, 0x09, 0x09, 0x09, 0x6d,
+  0x77, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x66, 0x6d, 0x70, 0x09,
+  0x09, 0x09, 0x09, 0x6d, 0x66, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d,
+  0x69, 0x63, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x66, 0x78, 0x2e, 0x66, 0x6c,
+  0x6f, 0x09, 0x09, 0x09, 0x66, 0x6c, 0x6f, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x6d, 0x69, 0x63, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x66, 0x78, 0x2e, 0x69,
+  0x67, 0x78, 0x09, 0x09, 0x09, 0x69, 0x67, 0x78, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x6d, 0x69, 0x66, 0x09, 0x09, 0x09, 0x09, 0x6d, 0x69, 0x66, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x6f,
+  0x66, 0x74, 0x2d, 0x68, 0x70, 0x33, 0x30, 0x30, 0x30, 0x2d, 0x73, 0x61,
+  0x76, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x69, 0x74,
+  0x73, 0x75, 0x62, 0x69, 0x73, 0x68, 0x69, 0x2e, 0x6d, 0x69, 0x73, 0x74,
+  0x79, 0x2d, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x74, 0x72, 0x75, 0x73,
+  0x74, 0x77, 0x65, 0x62, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x6f, 0x62,
+  0x69, 0x75, 0x73, 0x2e, 0x64, 0x61, 0x66, 0x09, 0x09, 0x09, 0x64, 0x61,
+  0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x6f, 0x62, 0x69, 0x75, 0x73,
+  0x2e, 0x64, 0x69, 0x73, 0x09, 0x09, 0x09, 0x64, 0x69, 0x73, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6d, 0x6f, 0x62, 0x69, 0x75, 0x73, 0x2e, 0x6d, 0x62,
+  0x6b, 0x09, 0x09, 0x09, 0x6d, 0x62, 0x6b, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x6d, 0x6f, 0x62, 0x69, 0x75, 0x73, 0x2e, 0x6d, 0x71, 0x79, 0x09, 0x09,
+  0x09, 0x6d, 0x71, 0x79, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x6f, 0x62,
+  0x69, 0x75, 0x73, 0x2e, 0x6d, 0x73, 0x6c, 0x09, 0x09, 0x09, 0x6d, 0x73,
+  0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x6f, 0x62, 0x69, 0x75, 0x73,
+  0x2e, 0x70, 0x6c, 0x63, 0x09, 0x09, 0x09, 0x70, 0x6c, 0x63, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6d, 0x6f, 0x62, 0x69, 0x75, 0x73, 0x2e, 0x74, 0x78,
+  0x66, 0x09, 0x09, 0x09, 0x74, 0x78, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x6d, 0x6f, 0x70, 0x68, 0x75, 0x6e, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x09, 0x09, 0x6d, 0x70, 0x6e, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x6f, 0x70, 0x68, 0x75, 0x6e, 0x2e, 0x63,
+  0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x09, 0x09,
+  0x6d, 0x70, 0x63, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x6f,
+  0x74, 0x6f, 0x72, 0x6f, 0x6c, 0x61, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x73,
+  0x75, 0x69, 0x74, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d,
+  0x6f, 0x74, 0x6f, 0x72, 0x6f, 0x6c, 0x61, 0x2e, 0x66, 0x6c, 0x65, 0x78,
+  0x73, 0x75, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x64, 0x73, 0x69, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x6f, 0x6c,
+  0x61, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x73, 0x75, 0x69, 0x74, 0x65, 0x2e,
+  0x66, 0x69, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x6f,
+  0x74, 0x6f, 0x72, 0x6f, 0x6c, 0x61, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x73,
+  0x75, 0x69, 0x74, 0x65, 0x2e, 0x67, 0x6f, 0x74, 0x61, 0x70, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x6f, 0x6c,
+  0x61, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x73, 0x75, 0x69, 0x74, 0x65, 0x2e,
+  0x6b, 0x6d, 0x72, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x6f,
+  0x74, 0x6f, 0x72, 0x6f, 0x6c, 0x61, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x73,
+  0x75, 0x69, 0x74, 0x65, 0x2e, 0x74, 0x74, 0x63, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x6f, 0x6c, 0x61, 0x2e,
+  0x66, 0x6c, 0x65, 0x78, 0x73, 0x75, 0x69, 0x74, 0x65, 0x2e, 0x77, 0x65,
+  0x6d, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x6f, 0x74, 0x6f,
+  0x72, 0x6f, 0x6c, 0x61, 0x2e, 0x69, 0x70, 0x72, 0x6d, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6d, 0x6f, 0x7a, 0x69, 0x6c, 0x6c, 0x61, 0x2e, 0x78, 0x75,
+  0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x78, 0x75, 0x6c, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x61, 0x72, 0x74, 0x67, 0x61,
+  0x6c, 0x72, 0x79, 0x09, 0x09, 0x09, 0x63, 0x69, 0x6c, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x61, 0x73, 0x66, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x63, 0x61, 0x62, 0x2d, 0x63, 0x6f,
+  0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x09, 0x09, 0x63, 0x61,
+  0x62, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x63,
+  0x6f, 0x6c, 0x6f, 0x72, 0x2e, 0x69, 0x63, 0x63, 0x70, 0x72, 0x6f, 0x66,
+  0x69, 0x6c, 0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x65,
+  0x78, 0x63, 0x65, 0x6c, 0x09, 0x09, 0x09, 0x78, 0x6c, 0x73, 0x20, 0x78,
+  0x6c, 0x6d, 0x20, 0x78, 0x6c, 0x61, 0x20, 0x78, 0x6c, 0x63, 0x20, 0x78,
+  0x6c, 0x74, 0x20, 0x78, 0x6c, 0x77, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d,
+  0x73, 0x2d, 0x65, 0x78, 0x63, 0x65, 0x6c, 0x2e, 0x61, 0x64, 0x64, 0x69,
+  0x6e, 0x2e, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x65, 0x6e, 0x61, 0x62, 0x6c,
+  0x65, 0x64, 0x2e, 0x31, 0x32, 0x09, 0x09, 0x78, 0x6c, 0x61, 0x6d, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x65, 0x78, 0x63, 0x65, 0x6c,
+  0x2e, 0x73, 0x68, 0x65, 0x65, 0x74, 0x2e, 0x62, 0x69, 0x6e, 0x61, 0x72,
+  0x79, 0x2e, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x65, 0x6e, 0x61, 0x62, 0x6c,
+  0x65, 0x64, 0x2e, 0x31, 0x32, 0x09, 0x78, 0x6c, 0x73, 0x62, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x65, 0x78, 0x63, 0x65, 0x6c, 0x2e,
+  0x73, 0x68, 0x65, 0x65, 0x74, 0x2e, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x65,
+  0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x2e, 0x31, 0x32, 0x09, 0x09, 0x78,
+  0x6c, 0x73, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x65,
+  0x78, 0x63, 0x65, 0x6c, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
+  0x65, 0x2e, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x65, 0x6e, 0x61, 0x62, 0x6c,
+  0x65, 0x64, 0x2e, 0x31, 0x32, 0x09, 0x78, 0x6c, 0x74, 0x6d, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x66, 0x6f, 0x6e, 0x74, 0x6f, 0x62,
+  0x6a, 0x65, 0x63, 0x74, 0x09, 0x09, 0x09, 0x65, 0x6f, 0x74, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x68, 0x74, 0x6d, 0x6c, 0x68, 0x65,
+  0x6c, 0x70, 0x09, 0x09, 0x09, 0x63, 0x68, 0x6d, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x6d, 0x73, 0x2d, 0x69, 0x6d, 0x73, 0x09, 0x09, 0x09, 0x09, 0x69,
+  0x6d, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x6c, 0x72,
+  0x6d, 0x09, 0x09, 0x09, 0x09, 0x6c, 0x72, 0x6d, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65,
+  0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x78, 0x2b, 0x78, 0x6d, 0x6c,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69,
+  0x63, 0x65, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x09, 0x09, 0x09, 0x74, 0x68,
+  0x6d, 0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d,
+  0x6f, 0x70, 0x65, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67,
+  0x65, 0x2e, 0x6f, 0x62, 0x66, 0x75, 0x73, 0x63, 0x61, 0x74, 0x65, 0x64,
+  0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x6b, 0x69, 0x2e, 0x73, 0x65, 0x63,
+  0x63, 0x61, 0x74, 0x09, 0x09, 0x09, 0x63, 0x61, 0x74, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x6b, 0x69, 0x2e, 0x73, 0x74, 0x6c,
+  0x09, 0x09, 0x09, 0x73, 0x74, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x6c, 0x61, 0x79, 0x72, 0x65, 0x61, 0x64,
+  0x79, 0x2e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x70,
+  0x6f, 0x77, 0x65, 0x72, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x09, 0x09, 0x09,
+  0x70, 0x70, 0x74, 0x20, 0x70, 0x70, 0x73, 0x20, 0x70, 0x6f, 0x74, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x6f, 0x77, 0x65, 0x72,
+  0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x2e,
+  0x6d, 0x61, 0x63, 0x72, 0x6f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
+  0x2e, 0x31, 0x32, 0x09, 0x09, 0x70, 0x70, 0x61, 0x6d, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x70, 0x6f,
+  0x69, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x65, 0x6e,
+  0x61, 0x62, 0x6c, 0x65, 0x64, 0x2e, 0x31, 0x32, 0x09, 0x70, 0x70, 0x74,
+  0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x6f, 0x77,
+  0x65, 0x72, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x73, 0x6c, 0x69, 0x64,
+  0x65, 0x2e, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x65, 0x6e, 0x61, 0x62, 0x6c,
+  0x65, 0x64, 0x2e, 0x31, 0x32, 0x09, 0x09, 0x73, 0x6c, 0x64, 0x6d, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x6f, 0x77, 0x65, 0x72,
+  0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x73,
+  0x68, 0x6f, 0x77, 0x2e, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x65, 0x6e, 0x61,
+  0x62, 0x6c, 0x65, 0x64, 0x2e, 0x31, 0x32, 0x09, 0x09, 0x70, 0x70, 0x73,
+  0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x6f, 0x77,
+  0x65, 0x72, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x74, 0x65, 0x6d, 0x70,
+  0x6c, 0x61, 0x74, 0x65, 0x2e, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x65, 0x6e,
+  0x61, 0x62, 0x6c, 0x65, 0x64, 0x2e, 0x31, 0x32, 0x09, 0x09, 0x70, 0x6f,
+  0x74, 0x6d, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d,
+  0x70, 0x72, 0x69, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x69,
+  0x6e, 0x74, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x2b, 0x78, 0x6d, 0x6c,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x72, 0x6f, 0x6a,
+  0x65, 0x63, 0x74, 0x09, 0x09, 0x09, 0x6d, 0x70, 0x70, 0x20, 0x6d, 0x70,
+  0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x74,
+  0x6e, 0x65, 0x66, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73,
+  0x2d, 0x77, 0x6d, 0x64, 0x72, 0x6d, 0x2e, 0x6c, 0x69, 0x63, 0x2d, 0x63,
+  0x68, 0x6c, 0x67, 0x2d, 0x72, 0x65, 0x71, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x77, 0x6d, 0x64, 0x72, 0x6d, 0x2e, 0x6c,
+  0x69, 0x63, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x77, 0x6d, 0x64, 0x72, 0x6d, 0x2e, 0x6d,
+  0x65, 0x74, 0x65, 0x72, 0x2d, 0x63, 0x68, 0x6c, 0x67, 0x2d, 0x72, 0x65,
+  0x71, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x77,
+  0x6d, 0x64, 0x72, 0x6d, 0x2e, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x2d, 0x72,
+  0x65, 0x73, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x77,
+  0x6f, 0x72, 0x64, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
+  0x2e, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
+  0x64, 0x2e, 0x31, 0x32, 0x09, 0x64, 0x6f, 0x63, 0x6d, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x77, 0x6f, 0x72, 0x64, 0x2e, 0x74, 0x65,
+  0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x6d, 0x61, 0x63, 0x72, 0x6f,
+  0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x2e, 0x31, 0x32, 0x09, 0x64,
+  0x6f, 0x74, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x77,
+  0x6f, 0x72, 0x6b, 0x73, 0x09, 0x09, 0x09, 0x77, 0x70, 0x73, 0x20, 0x77,
+  0x6b, 0x73, 0x20, 0x77, 0x63, 0x6d, 0x20, 0x77, 0x64, 0x62, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x77, 0x70, 0x6c, 0x09, 0x09, 0x09,
+  0x09, 0x77, 0x70, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d,
+  0x78, 0x70, 0x73, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x09,
+  0x09, 0x09, 0x78, 0x70, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73,
+  0x65, 0x71, 0x09, 0x09, 0x09, 0x09, 0x6d, 0x73, 0x65, 0x71, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x69, 0x67, 0x6e, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x61, 0x64,
+  0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x61, 0x64, 0x2e, 0x63,
+  0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x63, 0x69, 0x66, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x2d, 0x6e,
+  0x69, 0x66, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x75, 0x73, 0x69,
+  0x63, 0x69, 0x61, 0x6e, 0x09, 0x09, 0x09, 0x6d, 0x75, 0x73, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6d, 0x75, 0x76, 0x65, 0x65, 0x2e, 0x73, 0x74, 0x79,
+  0x6c, 0x65, 0x09, 0x09, 0x09, 0x6d, 0x73, 0x74, 0x79, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6d, 0x79, 0x6e, 0x66, 0x63, 0x09, 0x09, 0x09, 0x09, 0x74,
+  0x61, 0x67, 0x6c, 0x65, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x6e, 0x63, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x63, 0x64, 0x2e, 0x72, 0x65,
+  0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6e, 0x65, 0x72, 0x76, 0x61, 0x6e, 0x61, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x66, 0x70, 0x78, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6e, 0x65, 0x75, 0x72, 0x6f, 0x6c, 0x61, 0x6e, 0x67,
+  0x75, 0x61, 0x67, 0x65, 0x2e, 0x6e, 0x6c, 0x75, 0x09, 0x09, 0x6e, 0x6c,
+  0x75, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x69, 0x74, 0x66, 0x09, 0x09,
+  0x09, 0x09, 0x6e, 0x74, 0x66, 0x20, 0x6e, 0x69, 0x74, 0x66, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x62, 0x6c, 0x65, 0x6e, 0x65, 0x74, 0x2d,
+  0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x09, 0x09, 0x6e,
+  0x6e, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x62, 0x6c, 0x65,
+  0x6e, 0x65, 0x74, 0x2d, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x72, 0x09, 0x09,
+  0x09, 0x6e, 0x6e, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x62,
+  0x6c, 0x65, 0x6e, 0x65, 0x74, 0x2d, 0x77, 0x65, 0x62, 0x09, 0x09, 0x09,
+  0x6e, 0x6e, 0x77, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f,
+  0x6b, 0x69, 0x61, 0x2e, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69, 0x61,
+  0x2e, 0x63, 0x6f, 0x6e, 0x6d, 0x6c, 0x2b, 0x77, 0x62, 0x78, 0x6d, 0x6c,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69, 0x61,
+  0x2e, 0x63, 0x6f, 0x6e, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69, 0x61, 0x2e, 0x69,
+  0x73, 0x64, 0x73, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x2d, 0x70, 0x72,
+  0x65, 0x73, 0x65, 0x74, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x6e, 0x6f, 0x6b, 0x69, 0x61, 0x2e, 0x69, 0x70, 0x74, 0x76, 0x2e, 0x63,
+  0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69, 0x61, 0x2e, 0x6c, 0x61,
+  0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x2b, 0x77, 0x62, 0x78, 0x6d, 0x6c,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69, 0x61,
+  0x2e, 0x6c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x2b, 0x78, 0x6d,
+  0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69,
+  0x61, 0x2e, 0x6c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x63, 0x6f,
+  0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2b, 0x78, 0x6d, 0x6c,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69, 0x61,
+  0x2e, 0x6e, 0x2d, 0x67, 0x61, 0x67, 0x65, 0x2e, 0x61, 0x63, 0x2b, 0x78,
+  0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69, 0x61,
+  0x2e, 0x6e, 0x2d, 0x67, 0x61, 0x67, 0x65, 0x2e, 0x64, 0x61, 0x74, 0x61,
+  0x09, 0x09, 0x6e, 0x67, 0x64, 0x61, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x6e, 0x6f, 0x6b, 0x69, 0x61, 0x2e, 0x6e, 0x2d, 0x67, 0x61, 0x67, 0x65,
+  0x2e, 0x73, 0x79, 0x6d, 0x62, 0x69, 0x61, 0x6e, 0x2e, 0x69, 0x6e, 0x73,
+  0x74, 0x61, 0x6c, 0x6c, 0x09, 0x6e, 0x2d, 0x67, 0x61, 0x67, 0x65, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69, 0x61, 0x2e,
+  0x6e, 0x63, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f,
+  0x6b, 0x69, 0x61, 0x2e, 0x70, 0x63, 0x64, 0x2b, 0x77, 0x62, 0x78, 0x6d,
+  0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69,
+  0x61, 0x2e, 0x70, 0x63, 0x64, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69, 0x61, 0x2e, 0x72, 0x61, 0x64, 0x69,
+  0x6f, 0x2d, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x09, 0x09, 0x72, 0x70,
+  0x73, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69, 0x61,
+  0x2e, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x2d, 0x70, 0x72, 0x65, 0x73, 0x65,
+  0x74, 0x73, 0x09, 0x09, 0x72, 0x70, 0x73, 0x73, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x6e, 0x6f, 0x76, 0x61, 0x64, 0x69, 0x67, 0x6d, 0x2e, 0x65, 0x64,
+  0x6d, 0x09, 0x09, 0x09, 0x65, 0x64, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x6e, 0x6f, 0x76, 0x61, 0x64, 0x69, 0x67, 0x6d, 0x2e, 0x65, 0x64, 0x78,
+  0x09, 0x09, 0x09, 0x65, 0x64, 0x78, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e,
+  0x6f, 0x76, 0x61, 0x64, 0x69, 0x67, 0x6d, 0x2e, 0x65, 0x78, 0x74, 0x09,
+  0x09, 0x09, 0x65, 0x78, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x6e, 0x74, 0x74, 0x2d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x2e, 0x66, 0x69,
+  0x6c, 0x65, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x74, 0x74, 0x2d, 0x6c, 0x6f,
+  0x63, 0x61, 0x6c, 0x2e, 0x73, 0x69, 0x70, 0x2d, 0x74, 0x61, 0x5f, 0x72,
+  0x65, 0x6d, 0x6f, 0x74, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x6e, 0x74, 0x74, 0x2d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x2e, 0x73, 0x69,
+  0x70, 0x2d, 0x74, 0x61, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x73, 0x74, 0x72,
+  0x65, 0x61, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x61, 0x73, 0x69,
+  0x73, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
+  0x6e, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x09, 0x09, 0x6f, 0x64,
+  0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x61, 0x73, 0x69, 0x73, 0x2e,
+  0x6f, 0x70, 0x65, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
+  0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2d, 0x74, 0x65, 0x6d, 0x70, 0x6c,
+  0x61, 0x74, 0x65, 0x09, 0x6f, 0x74, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x6f, 0x61, 0x73, 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x6f,
+  0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x62,
+  0x61, 0x73, 0x65, 0x09, 0x09, 0x6f, 0x64, 0x62, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x6f, 0x61, 0x73, 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x64,
+  0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x66, 0x6f, 0x72, 0x6d,
+  0x75, 0x6c, 0x61, 0x09, 0x09, 0x6f, 0x64, 0x66, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x6f, 0x61, 0x73, 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x64,
+  0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x66, 0x6f, 0x72, 0x6d,
+  0x75, 0x6c, 0x61, 0x2d, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
+  0x09, 0x6f, 0x64, 0x66, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x61,
+  0x73, 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x6f, 0x63, 0x75,
+  0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63,
+  0x73, 0x09, 0x09, 0x6f, 0x64, 0x67, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f,
+  0x61, 0x73, 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x6f, 0x63,
+  0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69,
+  0x63, 0x73, 0x2d, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x09,
+  0x6f, 0x74, 0x67, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x61, 0x73, 0x69,
+  0x73, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
+  0x6e, 0x74, 0x2e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x09, 0x09, 0x6f, 0x64,
+  0x69, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x61, 0x73, 0x69, 0x73, 0x2e,
+  0x6f, 0x70, 0x65, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
+  0x2e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2d, 0x74, 0x65, 0x6d, 0x70, 0x6c,
+  0x61, 0x74, 0x65, 0x09, 0x6f, 0x74, 0x69, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x6f, 0x61, 0x73, 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x6f,
+  0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65,
+  0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x09, 0x09, 0x6f, 0x64, 0x70,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x61, 0x73, 0x69, 0x73, 0x2e, 0x6f,
+  0x70, 0x65, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e,
+  0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2d, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x09, 0x6f, 0x74,
+  0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x61, 0x73, 0x69, 0x73, 0x2e,
+  0x6f, 0x70, 0x65, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
+  0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68, 0x65, 0x65, 0x74,
+  0x09, 0x09, 0x6f, 0x64, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x61,
+  0x73, 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x6f, 0x63, 0x75,
+  0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73,
+  0x68, 0x65, 0x65, 0x74, 0x2d, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
+  0x65, 0x09, 0x6f, 0x74, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x61,
+  0x73, 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x6f, 0x63, 0x75,
+  0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x09, 0x09, 0x09,
+  0x6f, 0x64, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x61, 0x73, 0x69,
+  0x73, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
+  0x6e, 0x74, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x6d, 0x61, 0x73, 0x74,
+  0x65, 0x72, 0x09, 0x09, 0x6f, 0x64, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x6f, 0x61, 0x73, 0x69, 0x73, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x6f,
+  0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x2d,
+  0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x09, 0x6f, 0x74, 0x74,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x61, 0x73, 0x69, 0x73, 0x2e, 0x6f,
+  0x70, 0x65, 0x6e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e,
+  0x74, 0x65, 0x78, 0x74, 0x2d, 0x77, 0x65, 0x62, 0x09, 0x09, 0x6f, 0x74,
+  0x68, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x62, 0x6e, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x66, 0x74, 0x6e, 0x2e, 0x6c,
+  0x31, 0x30, 0x6e, 0x2b, 0x6a, 0x73, 0x6f, 0x6e, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6f, 0x69, 0x70, 0x66, 0x2e, 0x63, 0x6f, 0x6e, 0x74,
+  0x65, 0x6e, 0x74, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x64, 0x6f, 0x77,
+  0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x69, 0x70, 0x66, 0x2e, 0x63, 0x6f, 0x6e,
+  0x74, 0x65, 0x6e, 0x74, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x73, 0x74,
+  0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x2b, 0x78, 0x6d, 0x6c, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x69, 0x70, 0x66, 0x2e, 0x63,
+  0x73, 0x70, 0x67, 0x2d, 0x68, 0x65, 0x78, 0x62, 0x69, 0x6e, 0x61, 0x72,
+  0x79, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x69, 0x70, 0x66,
+  0x2e, 0x64, 0x61, 0x65, 0x2e, 0x73, 0x76, 0x67, 0x2b, 0x78, 0x6d, 0x6c,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x69, 0x70, 0x66, 0x2e,
+  0x64, 0x61, 0x65, 0x2e, 0x78, 0x68, 0x74, 0x6d, 0x6c, 0x2b, 0x78, 0x6d,
+  0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x69, 0x70, 0x66,
+  0x2e, 0x6d, 0x69, 0x70, 0x70, 0x76, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f,
+  0x6c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2b, 0x78, 0x6d, 0x6c,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x69, 0x70, 0x66, 0x2e,
+  0x70, 0x61, 0x65, 0x2e, 0x67, 0x65, 0x6d, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6f, 0x69, 0x70, 0x66, 0x2e, 0x73, 0x70, 0x64, 0x69, 0x73,
+  0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x69, 0x70, 0x66, 0x2e, 0x73, 0x70,
+  0x64, 0x6c, 0x69, 0x73, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x69, 0x70, 0x66, 0x2e, 0x75, 0x65, 0x70,
+  0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x69, 0x70, 0x66, 0x2e, 0x75, 0x73,
+  0x65, 0x72, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2b, 0x78, 0x6d,
+  0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6c, 0x70, 0x63, 0x2d, 0x73,
+  0x75, 0x67, 0x61, 0x72, 0x09, 0x09, 0x09, 0x78, 0x6f, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2d, 0x73, 0x63, 0x77, 0x73,
+  0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2d, 0x73, 0x63, 0x77, 0x73, 0x2d, 0x68,
+  0x74, 0x74, 0x70, 0x2d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2d, 0x73, 0x63,
+  0x77, 0x73, 0x2d, 0x68, 0x74, 0x74, 0x70, 0x2d, 0x72, 0x65, 0x73, 0x70,
+  0x6f, 0x6e, 0x73, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f,
+  0x6d, 0x61, 0x2e, 0x62, 0x63, 0x61, 0x73, 0x74, 0x2e, 0x61, 0x73, 0x73,
+  0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x2d, 0x70, 0x72, 0x6f, 0x63,
+  0x65, 0x64, 0x75, 0x72, 0x65, 0x2d, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65,
+  0x74, 0x65, 0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x62, 0x63, 0x61, 0x73, 0x74, 0x2e,
+  0x64, 0x72, 0x6d, 0x2d, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d,
+  0x61, 0x2e, 0x62, 0x63, 0x61, 0x73, 0x74, 0x2e, 0x69, 0x6d, 0x64, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d,
+  0x61, 0x2e, 0x62, 0x63, 0x61, 0x73, 0x74, 0x2e, 0x6c, 0x74, 0x6b, 0x6d,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x62,
+  0x63, 0x61, 0x73, 0x74, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x62, 0x63, 0x61, 0x73,
+  0x74, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x69,
+  0x6e, 0x67, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x62, 0x63, 0x61, 0x73,
+  0x74, 0x2e, 0x73, 0x67, 0x62, 0x6f, 0x6f, 0x74, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x62, 0x63, 0x61, 0x73, 0x74,
+  0x2e, 0x73, 0x67, 0x64, 0x64, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x62, 0x63, 0x61, 0x73,
+  0x74, 0x2e, 0x73, 0x67, 0x64, 0x75, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x62, 0x63, 0x61, 0x73, 0x74, 0x2e, 0x73,
+  0x69, 0x6d, 0x70, 0x6c, 0x65, 0x2d, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c,
+  0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x62, 0x63, 0x61,
+  0x73, 0x74, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x63, 0x61, 0x72, 0x64,
+  0x2d, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x2b, 0x78, 0x6d, 0x6c,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x62,
+  0x63, 0x61, 0x73, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x6f, 0x76, 0x2b, 0x78,
+  0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61,
+  0x2e, 0x62, 0x63, 0x61, 0x73, 0x74, 0x2e, 0x73, 0x74, 0x6b, 0x6d, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x63, 0x61,
+  0x62, 0x2d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2d, 0x62, 0x6f,
+  0x6f, 0x6b, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x63, 0x61, 0x62, 0x2d, 0x66, 0x65, 0x61,
+  0x74, 0x75, 0x72, 0x65, 0x2d, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72,
+  0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f,
+  0x6d, 0x61, 0x2e, 0x63, 0x61, 0x62, 0x2d, 0x70, 0x63, 0x63, 0x2b, 0x78,
+  0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61,
+  0x2e, 0x63, 0x61, 0x62, 0x2d, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x70, 0x72,
+  0x65, 0x66, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x64, 0x63, 0x64, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x64, 0x63, 0x64, 0x63,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x64, 0x64, 0x32,
+  0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x64, 0x64, 0x32, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x64, 0x72, 0x6d,
+  0x2e, 0x72, 0x69, 0x73, 0x64, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x67, 0x72, 0x6f, 0x75,
+  0x70, 0x2d, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2d, 0x6c, 0x69, 0x73, 0x74,
+  0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f,
+  0x6d, 0x61, 0x2e, 0x70, 0x61, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x70, 0x6f, 0x63,
+  0x2e, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x2d, 0x70, 0x72,
+  0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2d, 0x72, 0x65, 0x70, 0x6f, 0x72,
+  0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x6f, 0x6d, 0x61, 0x2e, 0x70, 0x6f, 0x63, 0x2e, 0x66, 0x69, 0x6e, 0x61,
+  0x6c, 0x2d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2b, 0x78, 0x6d, 0x6c,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x70,
+  0x6f, 0x63, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2b, 0x78, 0x6d,
+  0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e,
+  0x70, 0x6f, 0x63, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2d, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f,
+  0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x6f, 0x6d, 0x61, 0x2e, 0x70, 0x6f, 0x63, 0x2e, 0x6f, 0x70, 0x74, 0x69,
+  0x6d, 0x69, 0x7a, 0x65, 0x64, 0x2d, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65,
+  0x73, 0x73, 0x2d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2b, 0x78, 0x6d,
+  0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e,
+  0x70, 0x75, 0x73, 0x68, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f,
+  0x6d, 0x61, 0x2e, 0x73, 0x63, 0x69, 0x64, 0x6d, 0x2e, 0x6d, 0x65, 0x73,
+  0x73, 0x61, 0x67, 0x65, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x2e, 0x78, 0x63, 0x61, 0x70,
+  0x2d, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x2b, 0x78,
+  0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61,
+  0x64, 0x73, 0x2d, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x2b, 0x78, 0x6d, 0x6c,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x64, 0x73,
+  0x2d, 0x66, 0x69, 0x6c, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x64, 0x73, 0x2d, 0x66, 0x6f,
+  0x6c, 0x64, 0x65, 0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6f, 0x6d, 0x61, 0x6c, 0x6f, 0x63, 0x2d, 0x73, 0x75,
+  0x70, 0x6c, 0x2d, 0x69, 0x6e, 0x69, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x6f, 0x70, 0x65, 0x6e, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x6f, 0x72,
+  0x67, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x09,
+  0x09, 0x6f, 0x78, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f,
+  0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
+  0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75,
+  0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x2d,
+  0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2b, 0x78,
+  0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65,
+  0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d,
+  0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
+  0x6e, 0x74, 0x2e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x78, 0x6d, 0x6c,
+  0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2b, 0x78,
+  0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65,
+  0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d,
+  0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
+  0x6e, 0x74, 0x2e, 0x64, 0x72, 0x61, 0x77, 0x69, 0x6e, 0x67, 0x2b, 0x78,
+  0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65,
+  0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d,
+  0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
+  0x6e, 0x74, 0x2e, 0x64, 0x72, 0x61, 0x77, 0x69, 0x6e, 0x67, 0x6d, 0x6c,
+  0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c,
+  0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69,
+  0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x64,
+  0x72, 0x61, 0x77, 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e, 0x63, 0x68, 0x61,
+  0x72, 0x74, 0x73, 0x68, 0x61, 0x70, 0x65, 0x73, 0x2b, 0x78, 0x6d, 0x6c,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78,
+  0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66,
+  0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
+  0x2e, 0x64, 0x72, 0x61, 0x77, 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e, 0x64,
+  0x69, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x73,
+  0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f,
+  0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
+  0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75,
+  0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x72, 0x61, 0x77, 0x69, 0x6e, 0x67,
+  0x6d, 0x6c, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x64, 0x61,
+  0x74, 0x61, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d,
+  0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f,
+  0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x72, 0x61, 0x77, 0x69,
+  0x6e, 0x67, 0x6d, 0x6c, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x72, 0x61, 0x6d,
+  0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c,
+  0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69,
+  0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x64,
+  0x72, 0x61, 0x77, 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e, 0x64, 0x69, 0x61,
+  0x67, 0x72, 0x61, 0x6d, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2b, 0x78, 0x6d,
+  0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
+  0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f,
+  0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
+  0x74, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x2d, 0x70,
+  0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2b, 0x78, 0x6d,
+  0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
+  0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f,
+  0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
+  0x74, 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x6d, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
+  0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d,
+  0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66,
+  0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e,
+  0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x6d, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70,
+  0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73,
+  0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d,
+  0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x6d, 0x6c, 0x2e, 0x68, 0x61, 0x6e, 0x64, 0x6f,
+  0x75, 0x74, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x2b, 0x78, 0x6d, 0x6c,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78,
+  0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66,
+  0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
+  0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x6d, 0x6c, 0x2e, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x6d, 0x61, 0x73,
+  0x74, 0x65, 0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72,
+  0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64,
+  0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65, 0x73,
+  0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6d, 0x6c, 0x2e, 0x6e,
+  0x6f, 0x74, 0x65, 0x73, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x2b, 0x78, 0x6d,
+  0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d,
+  0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66,
+  0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e,
+  0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x6d, 0x6c, 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x09, 0x70, 0x70, 0x74, 0x78, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f,
+  0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65,
+  0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65,
+  0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6d, 0x6c, 0x2e,
+  0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2e, 0x6d, 0x61, 0x69, 0x6e, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66,
+  0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63,
+  0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72,
+  0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6d, 0x6c,
+  0x2e, 0x70, 0x72, 0x65, 0x73, 0x70, 0x72, 0x6f, 0x70, 0x73, 0x2b, 0x78,
+  0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78,
+  0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66,
+  0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
+  0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x6d, 0x6c, 0x2e, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x09, 0x73, 0x6c,
+  0x64, 0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65,
+  0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d,
+  0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
+  0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x6d, 0x6c, 0x2e, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70,
+  0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73,
+  0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d,
+  0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x6d, 0x6c, 0x2e, 0x73, 0x6c, 0x69, 0x64, 0x65,
+  0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c,
+  0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69,
+  0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70,
+  0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6d,
+  0x6c, 0x2e, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x6d, 0x61, 0x73, 0x74, 0x65,
+  0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70,
+  0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73,
+  0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d,
+  0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x6d, 0x6c, 0x2e, 0x73, 0x6c, 0x69, 0x64, 0x65,
+  0x73, 0x68, 0x6f, 0x77, 0x09, 0x70, 0x70, 0x73, 0x78, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66,
+  0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63,
+  0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72,
+  0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6d, 0x6c,
+  0x2e, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x73, 0x68, 0x6f, 0x77, 0x2e, 0x6d,
+  0x61, 0x69, 0x6e, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72,
+  0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64,
+  0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65, 0x73,
+  0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6d, 0x6c, 0x2e, 0x73,
+  0x6c, 0x69, 0x64, 0x65, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x69, 0x6e,
+  0x66, 0x6f, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d,
+  0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f,
+  0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65,
+  0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6d, 0x6c, 0x2e, 0x74, 0x61,
+  0x62, 0x6c, 0x65, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x73, 0x2b, 0x78, 0x6d,
+  0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
+  0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f,
+  0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
+  0x74, 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x6d, 0x6c, 0x2e, 0x74, 0x61, 0x67, 0x73, 0x2b, 0x78, 0x6d,
+  0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d,
+  0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66,
+  0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e,
+  0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x6d, 0x6c, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x09,
+  0x70, 0x6f, 0x74, 0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f,
+  0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
+  0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75,
+  0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6d, 0x6c, 0x2e, 0x74, 0x65, 0x6d, 0x70,
+  0x6c, 0x61, 0x74, 0x65, 0x2e, 0x6d, 0x61, 0x69, 0x6e, 0x2b, 0x78, 0x6d,
+  0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
+  0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f,
+  0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
+  0x74, 0x2e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x6d, 0x6c, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x70, 0x72, 0x6f,
+  0x70, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d,
+  0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f,
+  0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61,
+  0x64, 0x73, 0x68, 0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x63, 0x61, 0x6c,
+  0x63, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c,
+  0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69,
+  0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73,
+  0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68, 0x65, 0x65, 0x74, 0x6d, 0x6c,
+  0x2e, 0x63, 0x68, 0x61, 0x72, 0x74, 0x73, 0x68, 0x65, 0x65, 0x74, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70,
+  0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73,
+  0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d,
+  0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68,
+  0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
+  0x74, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d,
+  0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f,
+  0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61,
+  0x64, 0x73, 0x68, 0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x63, 0x6f, 0x6e,
+  0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2b, 0x78, 0x6d, 0x6c,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78,
+  0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66,
+  0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
+  0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68, 0x65, 0x65, 0x74,
+  0x6d, 0x6c, 0x2e, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x68, 0x65,
+  0x65, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d,
+  0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f,
+  0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61,
+  0x64, 0x73, 0x68, 0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x65, 0x78, 0x74,
+  0x65, 0x72, 0x6e, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x6b, 0x2b, 0x78, 0x6d,
+  0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
+  0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f,
+  0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
+  0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68, 0x65, 0x65,
+  0x74, 0x6d, 0x6c, 0x2e, 0x70, 0x69, 0x76, 0x6f, 0x74, 0x63, 0x61, 0x63,
+  0x68, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e,
+  0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f,
+  0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
+  0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75,
+  0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73,
+  0x68, 0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x70, 0x69, 0x76, 0x6f, 0x74,
+  0x63, 0x61, 0x63, 0x68, 0x65, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73,
+  0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f,
+  0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
+  0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75,
+  0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73,
+  0x68, 0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x70, 0x69, 0x76, 0x6f, 0x74,
+  0x74, 0x61, 0x62, 0x6c, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66,
+  0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63,
+  0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70,
+  0x72, 0x65, 0x61, 0x64, 0x73, 0x68, 0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e,
+  0x71, 0x75, 0x65, 0x72, 0x79, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2b, 0x78,
+  0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65,
+  0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d,
+  0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
+  0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68, 0x65,
+  0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f,
+  0x6e, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x2b, 0x78, 0x6d, 0x6c,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78,
+  0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66,
+  0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
+  0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68, 0x65, 0x65, 0x74,
+  0x6d, 0x6c, 0x2e, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x6c,
+  0x6f, 0x67, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d,
+  0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f,
+  0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61,
+  0x64, 0x73, 0x68, 0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x73, 0x68, 0x61,
+  0x72, 0x65, 0x64, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x2b, 0x78,
+  0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78,
+  0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66,
+  0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
+  0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68, 0x65, 0x65, 0x74,
+  0x6d, 0x6c, 0x2e, 0x73, 0x68, 0x65, 0x65, 0x74, 0x09, 0x78, 0x6c, 0x73,
+  0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
+  0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f,
+  0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
+  0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68, 0x65, 0x65,
+  0x74, 0x6d, 0x6c, 0x2e, 0x73, 0x68, 0x65, 0x65, 0x74, 0x2e, 0x6d, 0x61,
+  0x69, 0x6e, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d,
+  0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f,
+  0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61,
+  0x64, 0x73, 0x68, 0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x73, 0x68, 0x65,
+  0x65, 0x74, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2b, 0x78,
+  0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65,
+  0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d,
+  0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
+  0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68, 0x65,
+  0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x73, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70,
+  0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73,
+  0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d,
+  0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68,
+  0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70,
+  0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73,
+  0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d,
+  0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68,
+  0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73,
+  0x69, 0x6e, 0x67, 0x6c, 0x65, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x2b, 0x78,
+  0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78,
+  0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66,
+  0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
+  0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68, 0x65, 0x65, 0x74,
+  0x6d, 0x6c, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x09,
+  0x78, 0x6c, 0x74, 0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f,
+  0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
+  0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75,
+  0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73,
+  0x68, 0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c,
+  0x61, 0x74, 0x65, 0x2e, 0x6d, 0x61, 0x69, 0x6e, 0x2b, 0x78, 0x6d, 0x6c,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78,
+  0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66,
+  0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
+  0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73, 0x68, 0x65, 0x65, 0x74,
+  0x6d, 0x6c, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x73,
+  0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f,
+  0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
+  0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75,
+  0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x73,
+  0x68, 0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x76, 0x6f, 0x6c, 0x61, 0x74,
+  0x69, 0x6c, 0x65, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63,
+  0x69, 0x65, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72,
+  0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64,
+  0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x70, 0x72, 0x65,
+  0x61, 0x64, 0x73, 0x68, 0x65, 0x65, 0x74, 0x6d, 0x6c, 0x2e, 0x77, 0x6f,
+  0x72, 0x6b, 0x73, 0x68, 0x65, 0x65, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d,
+  0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66,
+  0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e,
+  0x74, 0x68, 0x65, 0x6d, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66,
+  0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63,
+  0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x74, 0x68,
+  0x65, 0x6d, 0x65, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70,
+  0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73,
+  0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d,
+  0x65, 0x6e, 0x74, 0x2e, 0x76, 0x6d, 0x6c, 0x64, 0x72, 0x61, 0x77, 0x69,
+  0x6e, 0x67, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65,
+  0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d,
+  0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
+  0x6e, 0x74, 0x2e, 0x77, 0x6f, 0x72, 0x64, 0x70, 0x72, 0x6f, 0x63, 0x65,
+  0x73, 0x73, 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
+  0x65, 0x6e, 0x74, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d,
+  0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f,
+  0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x77, 0x6f, 0x72, 0x64, 0x70,
+  0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e,
+  0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x09, 0x64, 0x6f, 0x63,
+  0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
+  0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f,
+  0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
+  0x74, 0x2e, 0x77, 0x6f, 0x72, 0x64, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73,
+  0x73, 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e, 0x64, 0x6f, 0x63, 0x75, 0x6d,
+  0x65, 0x6e, 0x74, 0x2e, 0x67, 0x6c, 0x6f, 0x73, 0x73, 0x61, 0x72, 0x79,
+  0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f,
+  0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
+  0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75,
+  0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x77, 0x6f, 0x72, 0x64, 0x70, 0x72, 0x6f,
+  0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e, 0x64, 0x6f,
+  0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x6d, 0x61, 0x69, 0x6e, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70,
+  0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73,
+  0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d,
+  0x65, 0x6e, 0x74, 0x2e, 0x77, 0x6f, 0x72, 0x64, 0x70, 0x72, 0x6f, 0x63,
+  0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e, 0x65, 0x6e, 0x64,
+  0x6e, 0x6f, 0x74, 0x65, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66,
+  0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63,
+  0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x77, 0x6f,
+  0x72, 0x64, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67,
+  0x6d, 0x6c, 0x2e, 0x66, 0x6f, 0x6e, 0x74, 0x74, 0x61, 0x62, 0x6c, 0x65,
+  0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f,
+  0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
+  0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75,
+  0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x77, 0x6f, 0x72, 0x64, 0x70, 0x72, 0x6f,
+  0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e, 0x66, 0x6f,
+  0x6f, 0x74, 0x65, 0x72, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f,
+  0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65,
+  0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x77, 0x6f, 0x72,
+  0x64, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x6d,
+  0x6c, 0x2e, 0x66, 0x6f, 0x6f, 0x74, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70,
+  0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73,
+  0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d,
+  0x65, 0x6e, 0x74, 0x2e, 0x77, 0x6f, 0x72, 0x64, 0x70, 0x72, 0x6f, 0x63,
+  0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e, 0x6e, 0x75, 0x6d,
+  0x62, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c,
+  0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69,
+  0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x77,
+  0x6f, 0x72, 0x64, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e,
+  0x67, 0x6d, 0x6c, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73,
+  0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f,
+  0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
+  0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75,
+  0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x77, 0x6f, 0x72, 0x64, 0x70, 0x72, 0x6f,
+  0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e, 0x73, 0x74,
+  0x79, 0x6c, 0x65, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d,
+  0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f,
+  0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x77, 0x6f, 0x72, 0x64, 0x70,
+  0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e,
+  0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x09, 0x64, 0x6f, 0x74,
+  0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
+  0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f,
+  0x66, 0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
+  0x74, 0x2e, 0x77, 0x6f, 0x72, 0x64, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73,
+  0x73, 0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c,
+  0x61, 0x74, 0x65, 0x2e, 0x6d, 0x61, 0x69, 0x6e, 0x2b, 0x78, 0x6d, 0x6c,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78,
+  0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x6f, 0x66,
+  0x66, 0x69, 0x63, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
+  0x2e, 0x77, 0x6f, 0x72, 0x64, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
+  0x69, 0x6e, 0x67, 0x6d, 0x6c, 0x2e, 0x77, 0x65, 0x62, 0x73, 0x65, 0x74,
+  0x74, 0x69, 0x6e, 0x67, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c, 0x66,
+  0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x70, 0x61, 0x63, 0x6b, 0x61,
+  0x67, 0x65, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2d, 0x70, 0x72, 0x6f, 0x70,
+  0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x78, 0x6d, 0x6c,
+  0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d, 0x70, 0x61, 0x63, 0x6b,
+  0x61, 0x67, 0x65, 0x2e, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x2d,
+  0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2d, 0x78, 0x6d,
+  0x6c, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2b, 0x78,
+  0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x70, 0x65,
+  0x6e, 0x78, 0x6d, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x2d,
+  0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x72, 0x65, 0x6c, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x2b, 0x78, 0x6d,
+  0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x71, 0x75, 0x6f, 0x62,
+  0x6a, 0x65, 0x63, 0x74, 0x2d, 0x71, 0x75, 0x6f, 0x78, 0x64, 0x6f, 0x63,
+  0x75, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x6f, 0x73, 0x61, 0x2e, 0x6e, 0x65, 0x74, 0x64, 0x65, 0x70, 0x6c, 0x6f,
+  0x79, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x73, 0x67, 0x65, 0x6f, 0x2e,
+  0x6d, 0x61, 0x70, 0x67, 0x75, 0x69, 0x64, 0x65, 0x2e, 0x70, 0x61, 0x63,
+  0x6b, 0x61, 0x67, 0x65, 0x09, 0x09, 0x6d, 0x67, 0x70, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x73, 0x67, 0x69, 0x2e, 0x62, 0x75, 0x6e,
+  0x64, 0x6c, 0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x73, 0x67, 0x69,
+  0x2e, 0x64, 0x70, 0x09, 0x09, 0x09, 0x09, 0x64, 0x70, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6f, 0x73, 0x67, 0x69, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x79,
+  0x73, 0x74, 0x65, 0x6d, 0x09, 0x09, 0x09, 0x65, 0x73, 0x61, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x74, 0x70, 0x73, 0x2e, 0x63, 0x74,
+  0x2d, 0x6b, 0x69, 0x70, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x70, 0x61, 0x6c, 0x6d, 0x09, 0x09, 0x09, 0x09, 0x70, 0x64, 0x62,
+  0x20, 0x70, 0x71, 0x61, 0x20, 0x6f, 0x70, 0x72, 0x63, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x70, 0x61, 0x6f, 0x73, 0x2e, 0x78, 0x6d, 0x6c,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x61, 0x77, 0x61, 0x61, 0x66, 0x69,
+  0x6c, 0x65, 0x09, 0x09, 0x09, 0x70, 0x61, 0x77, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x70, 0x67, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x09, 0x09,
+  0x09, 0x73, 0x74, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x67, 0x2e,
+  0x6f, 0x73, 0x61, 0x73, 0x6c, 0x69, 0x09, 0x09, 0x09, 0x65, 0x69, 0x36,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x69, 0x61, 0x63, 0x63,
+  0x65, 0x73, 0x73, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2d, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x70, 0x69, 0x63, 0x73, 0x65, 0x6c, 0x09, 0x09,
+  0x09, 0x09, 0x65, 0x66, 0x69, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70,
+  0x6d, 0x69, 0x2e, 0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x09, 0x09, 0x09,
+  0x77, 0x67, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x6f, 0x63,
+  0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2d, 0x61, 0x64, 0x76, 0x65, 0x72,
+  0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2b, 0x78, 0x6d, 0x6c,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x6c,
+  0x65, 0x61, 0x72, 0x6e, 0x09, 0x09, 0x09, 0x70, 0x6c, 0x66, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x62, 0x75, 0x69, 0x6c,
+  0x64, 0x65, 0x72, 0x36, 0x09, 0x09, 0x09, 0x70, 0x62, 0x64, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x62, 0x75,
+  0x69, 0x6c, 0x64, 0x65, 0x72, 0x36, 0x2d, 0x73, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x62, 0x75, 0x69, 0x6c,
+  0x64, 0x65, 0x72, 0x37, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70,
+  0x6f, 0x77, 0x65, 0x72, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x37,
+  0x2d, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x6f, 0x77,
+  0x65, 0x72, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x37, 0x35, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x62,
+  0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x37, 0x35, 0x2d, 0x73, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x6e, 0x65,
+  0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65,
+  0x77, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2e, 0x62, 0x6f, 0x78,
+  0x09, 0x09, 0x62, 0x6f, 0x78, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x72,
+  0x6f, 0x74, 0x65, 0x75, 0x73, 0x2e, 0x6d, 0x61, 0x67, 0x61, 0x7a, 0x69,
+  0x6e, 0x65, 0x09, 0x09, 0x6d, 0x67, 0x7a, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2d, 0x64,
+  0x65, 0x6c, 0x74, 0x61, 0x2d, 0x74, 0x72, 0x65, 0x65, 0x09, 0x09, 0x71,
+  0x70, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x76, 0x69, 0x2e, 0x70,
+  0x74, 0x69, 0x64, 0x31, 0x09, 0x09, 0x09, 0x70, 0x74, 0x69, 0x64, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x77, 0x67, 0x2d, 0x6d, 0x75,
+  0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x78, 0x65, 0x64, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x70, 0x77, 0x67, 0x2d, 0x78, 0x68, 0x74, 0x6d,
+  0x6c, 0x2d, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x71, 0x75, 0x61, 0x6c, 0x63, 0x6f,
+  0x6d, 0x6d, 0x2e, 0x62, 0x72, 0x65, 0x77, 0x2d, 0x61, 0x70, 0x70, 0x2d,
+  0x72, 0x65, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x71, 0x75, 0x61, 0x72,
+  0x6b, 0x2e, 0x71, 0x75, 0x61, 0x72, 0x6b, 0x78, 0x70, 0x72, 0x65, 0x73,
+  0x73, 0x09, 0x09, 0x71, 0x78, 0x64, 0x20, 0x71, 0x78, 0x74, 0x20, 0x71,
+  0x77, 0x64, 0x20, 0x71, 0x77, 0x74, 0x20, 0x71, 0x78, 0x6c, 0x20, 0x71,
+  0x78, 0x62, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x64,
+  0x69, 0x73, 0x79, 0x73, 0x2e, 0x6d, 0x6f, 0x6d, 0x6c, 0x2b, 0x78, 0x6d,
+  0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x64, 0x69,
+  0x73, 0x79, 0x73, 0x2e, 0x6d, 0x73, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x73,
+  0x79, 0x73, 0x2e, 0x6d, 0x73, 0x6d, 0x6c, 0x2d, 0x61, 0x75, 0x64, 0x69,
+  0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x72, 0x61, 0x64, 0x69, 0x73, 0x79, 0x73, 0x2e, 0x6d, 0x73, 0x6d, 0x6c,
+  0x2d, 0x61, 0x75, 0x64, 0x69, 0x74, 0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61,
+  0x64, 0x69, 0x73, 0x79, 0x73, 0x2e, 0x6d, 0x73, 0x6d, 0x6c, 0x2d, 0x61,
+  0x75, 0x64, 0x69, 0x74, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x2b, 0x78, 0x6d,
+  0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x64, 0x69,
+  0x73, 0x79, 0x73, 0x2e, 0x6d, 0x73, 0x6d, 0x6c, 0x2d, 0x61, 0x75, 0x64,
+  0x69, 0x74, 0x2d, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x2b, 0x78, 0x6d,
+  0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x64, 0x69,
+  0x73, 0x79, 0x73, 0x2e, 0x6d, 0x73, 0x6d, 0x6c, 0x2d, 0x61, 0x75, 0x64,
+  0x69, 0x74, 0x2d, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2b, 0x78, 0x6d,
+  0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x64, 0x69,
+  0x73, 0x79, 0x73, 0x2e, 0x6d, 0x73, 0x6d, 0x6c, 0x2d, 0x63, 0x6f, 0x6e,
+  0x66, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x72, 0x61, 0x64, 0x69, 0x73, 0x79, 0x73, 0x2e, 0x6d, 0x73, 0x6d, 0x6c,
+  0x2d, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67, 0x2b, 0x78, 0x6d, 0x6c, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x73, 0x79,
+  0x73, 0x2e, 0x6d, 0x73, 0x6d, 0x6c, 0x2d, 0x64, 0x69, 0x61, 0x6c, 0x6f,
+  0x67, 0x2d, 0x62, 0x61, 0x73, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x73, 0x79, 0x73,
+  0x2e, 0x6d, 0x73, 0x6d, 0x6c, 0x2d, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67,
+  0x2d, 0x66, 0x61, 0x78, 0x2d, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61,
+  0x64, 0x69, 0x73, 0x79, 0x73, 0x2e, 0x6d, 0x73, 0x6d, 0x6c, 0x2d, 0x64,
+  0x69, 0x61, 0x6c, 0x6f, 0x67, 0x2d, 0x66, 0x61, 0x78, 0x2d, 0x73, 0x65,
+  0x6e, 0x64, 0x72, 0x65, 0x63, 0x76, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x73, 0x79, 0x73,
+  0x2e, 0x6d, 0x73, 0x6d, 0x6c, 0x2d, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67,
+  0x2d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x73, 0x79, 0x73,
+  0x2e, 0x6d, 0x73, 0x6d, 0x6c, 0x2d, 0x64, 0x69, 0x61, 0x6c, 0x6f, 0x67,
+  0x2d, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2b, 0x78, 0x6d, 0x6c, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x73, 0x79,
+  0x73, 0x2e, 0x6d, 0x73, 0x6d, 0x6c, 0x2d, 0x64, 0x69, 0x61, 0x6c, 0x6f,
+  0x67, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61,
+  0x69, 0x6e, 0x73, 0x74, 0x6f, 0x72, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x70, 0x69, 0x64, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x72, 0x65, 0x61, 0x6c, 0x76, 0x6e, 0x63, 0x2e,
+  0x62, 0x65, 0x64, 0x09, 0x09, 0x09, 0x62, 0x65, 0x64, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x61, 0x72, 0x65, 0x2e,
+  0x6d, 0x75, 0x73, 0x69, 0x63, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x6d, 0x78,
+  0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64,
+  0x61, 0x72, 0x65, 0x2e, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x78, 0x6d, 0x6c,
+  0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x78,
+  0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x65, 0x6e,
+  0x6c, 0x65, 0x61, 0x72, 0x6e, 0x2e, 0x72, 0x6c, 0x70, 0x72, 0x69, 0x6e,
+  0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x69, 0x67, 0x2e, 0x63, 0x72,
+  0x79, 0x70, 0x74, 0x6f, 0x6e, 0x6f, 0x74, 0x65, 0x09, 0x09, 0x09, 0x63,
+  0x72, 0x79, 0x70, 0x74, 0x6f, 0x6e, 0x6f, 0x74, 0x65, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x72, 0x69, 0x6d, 0x2e, 0x63, 0x6f, 0x64, 0x09, 0x09, 0x09,
+  0x09, 0x63, 0x6f, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x6e, 0x2d,
+  0x72, 0x65, 0x61, 0x6c, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x09, 0x09, 0x09,
+  0x72, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x6e, 0x2d, 0x72, 0x65,
+  0x61, 0x6c, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x2d, 0x76, 0x62, 0x72, 0x09,
+  0x09, 0x72, 0x6d, 0x76, 0x62, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x6f,
+  0x75, 0x74, 0x65, 0x36, 0x36, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x36, 0x36,
+  0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x6c, 0x69, 0x6e, 0x6b, 0x36, 0x36,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x73, 0x2d, 0x32, 0x37,
+  0x34, 0x78, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x75, 0x63,
+  0x6b, 0x75, 0x73, 0x2e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x33, 0x73, 0x6d, 0x73,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67,
+  0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x2e, 0x74, 0x72, 0x61, 0x63,
+  0x6b, 0x09, 0x09, 0x73, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x73, 0x62, 0x6d, 0x2e, 0x63, 0x69, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x73, 0x62, 0x6d, 0x2e, 0x6d, 0x69, 0x64, 0x32, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x63, 0x72, 0x69, 0x62, 0x75, 0x73,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x65, 0x61, 0x6c, 0x65,
+  0x64, 0x2e, 0x33, 0x64, 0x66, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x2e, 0x63, 0x73, 0x66, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x2e,
+  0x64, 0x6f, 0x63, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x65,
+  0x61, 0x6c, 0x65, 0x64, 0x2e, 0x65, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x2e, 0x6d, 0x68,
+  0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x65, 0x61, 0x6c,
+  0x65, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x2e, 0x70, 0x70, 0x74, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64,
+  0x2e, 0x74, 0x69, 0x66, 0x66, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x2e, 0x78, 0x6c, 0x73, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x6d,
+  0x65, 0x64, 0x69, 0x61, 0x2e, 0x73, 0x6f, 0x66, 0x74, 0x73, 0x65, 0x61,
+  0x6c, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x6d, 0x65, 0x64, 0x69, 0x61,
+  0x2e, 0x73, 0x6f, 0x66, 0x74, 0x73, 0x65, 0x61, 0x6c, 0x2e, 0x70, 0x64,
+  0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x65, 0x65, 0x6d, 0x61, 0x69,
+  0x6c, 0x09, 0x09, 0x09, 0x09, 0x73, 0x65, 0x65, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x73, 0x65, 0x6d, 0x61, 0x09, 0x09, 0x09, 0x09, 0x73, 0x65, 0x6d,
+  0x61, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x65, 0x6d, 0x64, 0x09, 0x09,
+  0x09, 0x09, 0x73, 0x65, 0x6d, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73,
+  0x65, 0x6d, 0x66, 0x09, 0x09, 0x09, 0x09, 0x73, 0x65, 0x6d, 0x66, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x73, 0x68, 0x61, 0x6e, 0x61, 0x2e, 0x69, 0x6e,
+  0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x64,
+  0x61, 0x74, 0x61, 0x09, 0x09, 0x69, 0x66, 0x6d, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x73, 0x68, 0x61, 0x6e, 0x61, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x72,
+  0x6d, 0x65, 0x64, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x74, 0x65, 0x6d, 0x70,
+  0x6c, 0x61, 0x74, 0x65, 0x09, 0x69, 0x74, 0x70, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x73, 0x68, 0x61, 0x6e, 0x61, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x72,
+  0x6d, 0x65, 0x64, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x68, 0x61,
+  0x6e, 0x67, 0x65, 0x09, 0x69, 0x69, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x73, 0x68, 0x61, 0x6e, 0x61, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d,
+  0x65, 0x64, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x09, 0x09,
+  0x69, 0x70, 0x6b, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x69, 0x6d, 0x74,
+  0x65, 0x63, 0x68, 0x2d, 0x6d, 0x69, 0x6e, 0x64, 0x6d, 0x61, 0x70, 0x70,
+  0x65, 0x72, 0x09, 0x09, 0x74, 0x77, 0x64, 0x20, 0x74, 0x77, 0x64, 0x73,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x6d, 0x61, 0x66, 0x09, 0x09, 0x09,
+  0x09, 0x6d, 0x6d, 0x66, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73,
+  0x6d, 0x61, 0x72, 0x74, 0x2e, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f,
+  0x6b, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x2e,
+  0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x09, 0x09, 0x09, 0x74, 0x65,
+  0x61, 0x63, 0x68, 0x65, 0x72, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x36, 0x30, 0x32, 0x2e,
+  0x66, 0x69, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x6f,
+  0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x36, 0x30, 0x32, 0x2e, 0x66, 0x69,
+  0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x2d, 0x78, 0x6d,
+  0x6c, 0x2d, 0x7a, 0x69, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x6f,
+  0x6c, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x64, 0x6b, 0x6d, 0x2b, 0x78, 0x6d,
+  0x6c, 0x09, 0x09, 0x09, 0x73, 0x64, 0x6b, 0x6d, 0x20, 0x73, 0x64, 0x6b,
+  0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x66, 0x69,
+  0x72, 0x65, 0x2e, 0x64, 0x78, 0x70, 0x09, 0x09, 0x09, 0x64, 0x78, 0x70,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x70, 0x6f, 0x74, 0x66, 0x69, 0x72,
+  0x65, 0x2e, 0x73, 0x66, 0x73, 0x09, 0x09, 0x09, 0x73, 0x66, 0x73, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x73, 0x73, 0x2d, 0x63, 0x6f,
+  0x64, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x73, 0x73, 0x2d,
+  0x64, 0x74, 0x66, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x73,
+  0x73, 0x2d, 0x6e, 0x74, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x74,
+  0x61, 0x72, 0x64, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x63,
+  0x61, 0x6c, 0x63, 0x09, 0x09, 0x73, 0x64, 0x63, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x73, 0x74, 0x61, 0x72, 0x64, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f,
+  0x6e, 0x2e, 0x64, 0x72, 0x61, 0x77, 0x09, 0x09, 0x73, 0x64, 0x61, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x73, 0x74, 0x61, 0x72, 0x64, 0x69, 0x76, 0x69,
+  0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x69, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73,
+  0x09, 0x09, 0x73, 0x64, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x74,
+  0x61, 0x72, 0x64, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x6d,
+  0x61, 0x74, 0x68, 0x09, 0x09, 0x73, 0x6d, 0x66, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x73, 0x74, 0x61, 0x72, 0x64, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f,
+  0x6e, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x72, 0x09, 0x09, 0x73, 0x64,
+  0x77, 0x20, 0x76, 0x6f, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x74,
+  0x61, 0x72, 0x64, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x77,
+  0x72, 0x69, 0x74, 0x65, 0x72, 0x2d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c,
+  0x09, 0x73, 0x67, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x74, 0x65,
+  0x70, 0x6d, 0x61, 0x6e, 0x69, 0x61, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x61,
+  0x67, 0x65, 0x09, 0x09, 0x73, 0x6d, 0x7a, 0x69, 0x70, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x73, 0x74, 0x65, 0x70, 0x6d, 0x61, 0x6e, 0x69, 0x61, 0x2e,
+  0x73, 0x74, 0x65, 0x70, 0x63, 0x68, 0x61, 0x72, 0x74, 0x09, 0x09, 0x73,
+  0x6d, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x74, 0x72, 0x65,
+  0x65, 0x74, 0x2d, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x73, 0x75, 0x6e, 0x2e, 0x78, 0x6d, 0x6c, 0x2e, 0x63, 0x61,
+  0x6c, 0x63, 0x09, 0x09, 0x09, 0x73, 0x78, 0x63, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x73, 0x75, 0x6e, 0x2e, 0x78, 0x6d, 0x6c, 0x2e, 0x63, 0x61, 0x6c,
+  0x63, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x09, 0x09,
+  0x73, 0x74, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x75, 0x6e, 0x2e,
+  0x78, 0x6d, 0x6c, 0x2e, 0x64, 0x72, 0x61, 0x77, 0x09, 0x09, 0x09, 0x73,
+  0x78, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x75, 0x6e, 0x2e, 0x78,
+  0x6d, 0x6c, 0x2e, 0x64, 0x72, 0x61, 0x77, 0x2e, 0x74, 0x65, 0x6d, 0x70,
+  0x6c, 0x61, 0x74, 0x65, 0x09, 0x09, 0x73, 0x74, 0x64, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x73, 0x75, 0x6e, 0x2e, 0x78, 0x6d, 0x6c, 0x2e, 0x69, 0x6d,
+  0x70, 0x72, 0x65, 0x73, 0x73, 0x09, 0x09, 0x09, 0x73, 0x78, 0x69, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x73, 0x75, 0x6e, 0x2e, 0x78, 0x6d, 0x6c, 0x2e,
+  0x69, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x74, 0x65, 0x6d, 0x70,
+  0x6c, 0x61, 0x74, 0x65, 0x09, 0x73, 0x74, 0x69, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x73, 0x75, 0x6e, 0x2e, 0x78, 0x6d, 0x6c, 0x2e, 0x6d, 0x61, 0x74,
+  0x68, 0x09, 0x09, 0x09, 0x73, 0x78, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x73, 0x75, 0x6e, 0x2e, 0x78, 0x6d, 0x6c, 0x2e, 0x77, 0x72, 0x69, 0x74,
+  0x65, 0x72, 0x09, 0x09, 0x09, 0x73, 0x78, 0x77, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x73, 0x75, 0x6e, 0x2e, 0x78, 0x6d, 0x6c, 0x2e, 0x77, 0x72, 0x69,
+  0x74, 0x65, 0x72, 0x2e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x09, 0x09,
+  0x73, 0x78, 0x67, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x75, 0x6e, 0x2e,
+  0x78, 0x6d, 0x6c, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x72, 0x2e, 0x74,
+  0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x09, 0x09, 0x73, 0x74, 0x77,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x75, 0x6e, 0x2e, 0x77,
+  0x61, 0x64, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x73, 0x75, 0x73, 0x2d, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72,
+  0x09, 0x09, 0x09, 0x73, 0x75, 0x73, 0x20, 0x73, 0x75, 0x73, 0x70, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x73, 0x76, 0x64, 0x09, 0x09, 0x09, 0x09, 0x73,
+  0x76, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x77, 0x69,
+  0x66, 0x74, 0x76, 0x69, 0x65, 0x77, 0x2d, 0x69, 0x63, 0x73, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x73, 0x79, 0x6d, 0x62, 0x69, 0x61, 0x6e, 0x2e, 0x69,
+  0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x09, 0x09, 0x09, 0x73, 0x69, 0x73,
+  0x20, 0x73, 0x69, 0x73, 0x78, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x79,
+  0x6e, 0x63, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x78,
+  0x73, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x6d,
+  0x6c, 0x2e, 0x64, 0x6d, 0x2b, 0x77, 0x62, 0x78, 0x6d, 0x6c, 0x09, 0x09,
+  0x09, 0x62, 0x64, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x79, 0x6e,
+  0x63, 0x6d, 0x6c, 0x2e, 0x64, 0x6d, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09,
+  0x09, 0x78, 0x64, 0x6d, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73,
+  0x79, 0x6e, 0x63, 0x6d, 0x6c, 0x2e, 0x64, 0x6d, 0x2e, 0x6e, 0x6f, 0x74,
+  0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x6d, 0x6c, 0x2e, 0x64,
+  0x73, 0x2e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x74, 0x61, 0x6f, 0x2e, 0x69,
+  0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
+  0x2d, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x09, 0x74, 0x61, 0x6f,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x74, 0x63, 0x70, 0x64, 0x75, 0x6d, 0x70,
+  0x2e, 0x70, 0x63, 0x61, 0x70, 0x09, 0x09, 0x09, 0x70, 0x63, 0x61, 0x70,
+  0x20, 0x63, 0x61, 0x70, 0x20, 0x64, 0x6d, 0x70, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x74, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x2d, 0x6c, 0x69, 0x76,
+  0x65, 0x74, 0x76, 0x09, 0x09, 0x09, 0x74, 0x6d, 0x6f, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x74, 0x72, 0x69, 0x64, 0x2e, 0x74, 0x70, 0x74, 0x09, 0x09,
+  0x09, 0x74, 0x70, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x74, 0x72, 0x69,
+  0x73, 0x63, 0x61, 0x70, 0x65, 0x2e, 0x6d, 0x78, 0x73, 0x09, 0x09, 0x09,
+  0x6d, 0x78, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x74, 0x72, 0x75, 0x65,
+  0x61, 0x70, 0x70, 0x09, 0x09, 0x09, 0x09, 0x74, 0x72, 0x61, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x74, 0x72, 0x75, 0x65, 0x64, 0x6f, 0x63,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x75, 0x62, 0x69, 0x73, 0x6f,
+  0x66, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x75, 0x66, 0x64, 0x6c, 0x09, 0x09, 0x09,
+  0x09, 0x75, 0x66, 0x64, 0x20, 0x75, 0x66, 0x64, 0x6c, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x75, 0x69, 0x71, 0x2e, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x09,
+  0x09, 0x09, 0x75, 0x74, 0x7a, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x75, 0x6d,
+  0x61, 0x6a, 0x69, 0x6e, 0x09, 0x09, 0x09, 0x09, 0x75, 0x6d, 0x6a, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x09, 0x09, 0x09,
+  0x09, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x77, 0x65, 0x62, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x75, 0x6f, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09,
+  0x09, 0x75, 0x6f, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x75, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72,
+  0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x75, 0x70, 0x6c, 0x61,
+  0x6e, 0x65, 0x74, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x2d, 0x77, 0x62,
+  0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x75, 0x70,
+  0x6c, 0x61, 0x6e, 0x65, 0x74, 0x2e, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72,
+  0x2d, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x75, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x2e, 0x62, 0x65,
+  0x61, 0x72, 0x65, 0x72, 0x2d, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2d,
+  0x77, 0x62, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x75, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x2e, 0x63, 0x61, 0x63, 0x68,
+  0x65, 0x6f, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x75, 0x70,
+  0x6c, 0x61, 0x6e, 0x65, 0x74, 0x2e, 0x63, 0x61, 0x63, 0x68, 0x65, 0x6f,
+  0x70, 0x2d, 0x77, 0x62, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x75, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x2e, 0x63, 0x68,
+  0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x75, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x2e, 0x63, 0x68, 0x61, 0x6e,
+  0x6e, 0x65, 0x6c, 0x2d, 0x77, 0x62, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x75, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x2e,
+  0x6c, 0x69, 0x73, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x75,
+  0x70, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x2d,
+  0x77, 0x62, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x75, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x2e, 0x6c, 0x69, 0x73, 0x74,
+  0x63, 0x6d, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x75, 0x70,
+  0x6c, 0x61, 0x6e, 0x65, 0x74, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x63, 0x6d,
+  0x64, 0x2d, 0x77, 0x62, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x75, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x2e, 0x73, 0x69,
+  0x67, 0x6e, 0x61, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x76, 0x63, 0x78,
+  0x09, 0x09, 0x09, 0x09, 0x76, 0x63, 0x78, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x76, 0x64, 0x2d, 0x73, 0x74, 0x75, 0x64, 0x79, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x77,
+  0x6f, 0x72, 0x6b, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x76,
+  0x65, 0x72, 0x69, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x2e, 0x76, 0x63,
+  0x61, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x76, 0x69, 0x64,
+  0x73, 0x6f, 0x66, 0x74, 0x2e, 0x76, 0x69, 0x64, 0x63, 0x6f, 0x6e, 0x66,
+  0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x76,
+  0x69, 0x73, 0x69, 0x6f, 0x09, 0x09, 0x09, 0x09, 0x76, 0x73, 0x64, 0x20,
+  0x76, 0x73, 0x74, 0x20, 0x76, 0x73, 0x73, 0x20, 0x76, 0x73, 0x77, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x72,
+  0x79, 0x09, 0x09, 0x09, 0x76, 0x69, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x76, 0x69, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x2e,
+  0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x76, 0x73, 0x66, 0x09, 0x09, 0x09, 0x09, 0x76, 0x73,
+  0x66, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x61, 0x70, 0x2e,
+  0x73, 0x69, 0x63, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x61,
+  0x70, 0x2e, 0x73, 0x6c, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x61,
+  0x70, 0x2e, 0x77, 0x62, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x77, 0x62,
+  0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x61, 0x70, 0x2e,
+  0x77, 0x6d, 0x6c, 0x63, 0x09, 0x09, 0x09, 0x77, 0x6d, 0x6c, 0x63, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x77, 0x61, 0x70, 0x2e, 0x77, 0x6d, 0x6c, 0x73,
+  0x63, 0x72, 0x69, 0x70, 0x74, 0x63, 0x09, 0x09, 0x09, 0x77, 0x6d, 0x6c,
+  0x73, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x65, 0x62, 0x74, 0x75,
+  0x72, 0x62, 0x6f, 0x09, 0x09, 0x09, 0x77, 0x74, 0x62, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x77, 0x66, 0x61, 0x2e, 0x77, 0x73, 0x63, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x6d, 0x63, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x77, 0x6d, 0x66, 0x2e, 0x62, 0x6f, 0x6f, 0x74,
+  0x73, 0x74, 0x72, 0x61, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x77, 0x6f, 0x6c, 0x66, 0x72, 0x61, 0x6d, 0x2e, 0x6d, 0x61, 0x74, 0x68,
+  0x65, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x77, 0x6f, 0x6c, 0x66, 0x72, 0x61, 0x6d, 0x2e, 0x6d, 0x61,
+  0x74, 0x68, 0x65, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x2e, 0x70, 0x61,
+  0x63, 0x6b, 0x61, 0x67, 0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x6f,
+  0x6c, 0x66, 0x72, 0x61, 0x6d, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72,
+  0x09, 0x09, 0x09, 0x6e, 0x62, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77,
+  0x6f, 0x72, 0x64, 0x70, 0x65, 0x72, 0x66, 0x65, 0x63, 0x74, 0x09, 0x09,
+  0x09, 0x77, 0x70, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x71, 0x64,
+  0x09, 0x09, 0x09, 0x09, 0x77, 0x71, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x77, 0x72, 0x71, 0x2d, 0x68, 0x70, 0x33, 0x30, 0x30, 0x30,
+  0x2d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x77, 0x74, 0x2e, 0x73, 0x74, 0x66, 0x09, 0x09, 0x09, 0x09,
+  0x73, 0x74, 0x66, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x76,
+  0x2e, 0x63, 0x73, 0x70, 0x2b, 0x77, 0x62, 0x78, 0x6d, 0x6c, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x76, 0x2e, 0x63, 0x73, 0x70, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x76,
+  0x2e, 0x73, 0x73, 0x70, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x78, 0x61, 0x72, 0x61, 0x09, 0x09, 0x09, 0x09, 0x78, 0x61, 0x72,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x78, 0x66, 0x64, 0x6c, 0x09, 0x09, 0x09,
+  0x09, 0x78, 0x66, 0x64, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x78, 0x66, 0x64, 0x6c, 0x2e, 0x77, 0x65, 0x62, 0x66, 0x6f, 0x72, 0x6d,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x78, 0x6d, 0x69, 0x2b, 0x78,
+  0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x78, 0x6d, 0x70,
+  0x69, 0x65, 0x2e, 0x63, 0x70, 0x6b, 0x67, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x78, 0x6d, 0x70, 0x69, 0x65, 0x2e, 0x64, 0x70, 0x6b, 0x67,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x78, 0x6d, 0x70, 0x69, 0x65,
+  0x2e, 0x70, 0x6c, 0x61, 0x6e, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x78, 0x6d, 0x70, 0x69, 0x65, 0x2e, 0x70, 0x70, 0x6b, 0x67, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x78, 0x6d, 0x70, 0x69, 0x65, 0x2e, 0x78,
+  0x6c, 0x69, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x79, 0x61, 0x6d, 0x61,
+  0x68, 0x61, 0x2e, 0x68, 0x76, 0x2d, 0x64, 0x69, 0x63, 0x09, 0x09, 0x09,
+  0x68, 0x76, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x79, 0x61, 0x6d, 0x61,
+  0x68, 0x61, 0x2e, 0x68, 0x76, 0x2d, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
+  0x09, 0x09, 0x68, 0x76, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x79, 0x61,
+  0x6d, 0x61, 0x68, 0x61, 0x2e, 0x68, 0x76, 0x2d, 0x76, 0x6f, 0x69, 0x63,
+  0x65, 0x09, 0x09, 0x09, 0x68, 0x76, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x79, 0x61, 0x6d, 0x61, 0x68, 0x61, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73,
+  0x63, 0x6f, 0x72, 0x65, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x09, 0x09,
+  0x09, 0x6f, 0x73, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x79, 0x61, 0x6d,
+  0x61, 0x68, 0x61, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x63, 0x6f, 0x72,
+  0x65, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x6f, 0x73, 0x66, 0x70,
+  0x76, 0x67, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x6f, 0x73, 0x66, 0x70, 0x76,
+  0x67, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x79, 0x61, 0x6d, 0x61,
+  0x68, 0x61, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2d, 0x73, 0x65,
+  0x74, 0x75, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x79, 0x61, 0x6d, 0x61,
+  0x68, 0x61, 0x2e, 0x73, 0x6d, 0x61, 0x66, 0x2d, 0x61, 0x75, 0x64, 0x69,
+  0x6f, 0x09, 0x09, 0x73, 0x61, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x79,
+  0x61, 0x6d, 0x61, 0x68, 0x61, 0x2e, 0x73, 0x6d, 0x61, 0x66, 0x2d, 0x70,
+  0x68, 0x72, 0x61, 0x73, 0x65, 0x09, 0x09, 0x73, 0x70, 0x66, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x79, 0x61, 0x6d, 0x61, 0x68, 0x61, 0x2e,
+  0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x2d, 0x6e, 0x67, 0x6e, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x79, 0x61, 0x6d, 0x61, 0x68, 0x61,
+  0x2e, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x2d, 0x75, 0x64, 0x70, 0x65,
+  0x6e, 0x63, 0x61, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x79, 0x65, 0x6c,
+  0x6c, 0x6f, 0x77, 0x72, 0x69, 0x76, 0x65, 0x72, 0x2d, 0x63, 0x75, 0x73,
+  0x74, 0x6f, 0x6d, 0x2d, 0x6d, 0x65, 0x6e, 0x75, 0x09, 0x09, 0x63, 0x6d,
+  0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x7a, 0x75, 0x6c, 0x09, 0x09, 0x09,
+  0x09, 0x7a, 0x69, 0x72, 0x20, 0x7a, 0x69, 0x72, 0x7a, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x7a, 0x7a, 0x61, 0x7a, 0x7a, 0x2e, 0x64, 0x65, 0x63, 0x6b,
+  0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x7a, 0x61, 0x7a, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76,
+  0x6f, 0x69, 0x63, 0x65, 0x78, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09,
+  0x09, 0x09, 0x76, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x71, 0x2d,
+  0x72, 0x74, 0x63, 0x70, 0x78, 0x72, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x77, 0x61, 0x74,
+  0x63, 0x68, 0x65, 0x72, 0x69, 0x6e, 0x66, 0x6f, 0x2b, 0x78, 0x6d, 0x6c,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x77, 0x68, 0x6f, 0x69, 0x73, 0x70, 0x70, 0x2d, 0x71,
+  0x75, 0x65, 0x72, 0x79, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x77, 0x68, 0x6f, 0x69, 0x73,
+  0x70, 0x70, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x77, 0x69, 0x64, 0x67, 0x65, 0x74, 0x09, 0x09, 0x09, 0x09, 0x77, 0x67,
+  0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x77, 0x69, 0x6e, 0x68, 0x6c, 0x70, 0x09, 0x09, 0x09, 0x09,
+  0x68, 0x6c, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x77, 0x69, 0x74, 0x61, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x77, 0x6f, 0x72, 0x64, 0x70, 0x65, 0x72, 0x66, 0x65, 0x63, 0x74,
+  0x35, 0x2e, 0x31, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x77, 0x73, 0x64, 0x6c, 0x2b, 0x78, 0x6d, 0x6c,
+  0x09, 0x09, 0x09, 0x09, 0x77, 0x73, 0x64, 0x6c, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x77, 0x73, 0x70,
+  0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09,
+  0x77, 0x73, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x37,
+  0x7a, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64,
+  0x09, 0x09, 0x09, 0x37, 0x7a, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x61, 0x62, 0x69, 0x77,
+  0x6f, 0x72, 0x64, 0x09, 0x09, 0x09, 0x09, 0x61, 0x62, 0x77, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78,
+  0x2d, 0x61, 0x63, 0x65, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73,
+  0x73, 0x65, 0x64, 0x09, 0x09, 0x09, 0x61, 0x63, 0x65, 0x0a, 0x23, 0x20,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x78, 0x2d, 0x61, 0x6d, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x61, 0x70, 0x70, 0x6c,
+  0x65, 0x2d, 0x64, 0x69, 0x73, 0x6b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x09,
+  0x09, 0x09, 0x64, 0x6d, 0x67, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x61, 0x75, 0x74, 0x68,
+  0x6f, 0x72, 0x77, 0x61, 0x72, 0x65, 0x2d, 0x62, 0x69, 0x6e, 0x09, 0x09,
+  0x09, 0x61, 0x61, 0x62, 0x20, 0x78, 0x33, 0x32, 0x20, 0x75, 0x33, 0x32,
+  0x20, 0x76, 0x6f, 0x78, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x61, 0x75, 0x74, 0x68, 0x6f,
+  0x72, 0x77, 0x61, 0x72, 0x65, 0x2d, 0x6d, 0x61, 0x70, 0x09, 0x09, 0x09,
+  0x61, 0x61, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72,
+  0x77, 0x61, 0x72, 0x65, 0x2d, 0x73, 0x65, 0x67, 0x09, 0x09, 0x09, 0x61,
+  0x61, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x62, 0x63, 0x70, 0x69, 0x6f, 0x09, 0x09,
+  0x09, 0x09, 0x62, 0x63, 0x70, 0x69, 0x6f, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x62, 0x69,
+  0x74, 0x74, 0x6f, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x09, 0x09, 0x09, 0x74,
+  0x6f, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x62, 0x6c, 0x6f,
+  0x72, 0x62, 0x09, 0x09, 0x09, 0x09, 0x62, 0x6c, 0x62, 0x20, 0x62, 0x6c,
+  0x6f, 0x72, 0x62, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x62, 0x7a, 0x69, 0x70, 0x09, 0x09,
+  0x09, 0x09, 0x62, 0x7a, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x62, 0x7a, 0x69, 0x70, 0x32,
+  0x09, 0x09, 0x09, 0x09, 0x62, 0x7a, 0x32, 0x20, 0x62, 0x6f, 0x7a, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x78, 0x2d, 0x63, 0x62, 0x72, 0x09, 0x09, 0x09, 0x09, 0x63, 0x62, 0x72,
+  0x20, 0x63, 0x62, 0x61, 0x20, 0x63, 0x62, 0x74, 0x20, 0x63, 0x62, 0x7a,
+  0x20, 0x63, 0x62, 0x37, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x63, 0x64, 0x6c, 0x69, 0x6e,
+  0x6b, 0x09, 0x09, 0x09, 0x09, 0x76, 0x63, 0x64, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x63,
+  0x66, 0x73, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65,
+  0x64, 0x09, 0x09, 0x09, 0x63, 0x66, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x63, 0x68,
+  0x61, 0x74, 0x09, 0x09, 0x09, 0x09, 0x63, 0x68, 0x61, 0x74, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78,
+  0x2d, 0x63, 0x68, 0x65, 0x73, 0x73, 0x2d, 0x70, 0x67, 0x6e, 0x09, 0x09,
+  0x09, 0x09, 0x70, 0x67, 0x6e, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x63, 0x6f, 0x6e, 0x66,
+  0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x09, 0x09, 0x09, 0x6e, 0x73, 0x63,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73,
+  0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x78, 0x2d, 0x63, 0x70, 0x69, 0x6f, 0x09, 0x09, 0x09, 0x09,
+  0x63, 0x70, 0x69, 0x6f, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x63, 0x73, 0x68, 0x09, 0x09,
+  0x09, 0x09, 0x63, 0x73, 0x68, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x64, 0x65, 0x62, 0x69,
+  0x61, 0x6e, 0x2d, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x09, 0x09,
+  0x09, 0x64, 0x65, 0x62, 0x20, 0x75, 0x64, 0x65, 0x62, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d,
+  0x64, 0x67, 0x63, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73,
+  0x65, 0x64, 0x09, 0x09, 0x09, 0x64, 0x67, 0x63, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x64,
+  0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x09, 0x09, 0x09, 0x64, 0x69,
+  0x72, 0x20, 0x64, 0x63, 0x72, 0x20, 0x64, 0x78, 0x72, 0x20, 0x63, 0x73,
+  0x74, 0x20, 0x63, 0x63, 0x74, 0x20, 0x63, 0x78, 0x74, 0x20, 0x77, 0x33,
+  0x64, 0x20, 0x66, 0x67, 0x64, 0x20, 0x73, 0x77, 0x61, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d,
+  0x64, 0x6f, 0x6f, 0x6d, 0x09, 0x09, 0x09, 0x09, 0x77, 0x61, 0x64, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x78, 0x2d, 0x64, 0x74, 0x62, 0x6e, 0x63, 0x78, 0x2b, 0x78, 0x6d, 0x6c,
+  0x09, 0x09, 0x09, 0x6e, 0x63, 0x78, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x64, 0x74, 0x62,
+  0x6f, 0x6f, 0x6b, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x64, 0x74,
+  0x62, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x78, 0x2d, 0x64, 0x74, 0x62, 0x72, 0x65, 0x73, 0x6f, 0x75,
+  0x72, 0x63, 0x65, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x72, 0x65,
+  0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x78, 0x2d, 0x64, 0x76, 0x69, 0x09, 0x09, 0x09, 0x09, 0x64,
+  0x76, 0x69, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x09, 0x09,
+  0x09, 0x09, 0x65, 0x76, 0x79, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x65, 0x76, 0x61, 0x09,
+  0x09, 0x09, 0x09, 0x65, 0x76, 0x61, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x66, 0x6f, 0x6e,
+  0x74, 0x2d, 0x62, 0x64, 0x66, 0x09, 0x09, 0x09, 0x09, 0x62, 0x64, 0x66,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x64, 0x6f,
+  0x73, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x66,
+  0x72, 0x61, 0x6d, 0x65, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d,
+  0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x67, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x63,
+  0x72, 0x69, 0x70, 0x74, 0x09, 0x09, 0x09, 0x67, 0x73, 0x66, 0x0a, 0x23,
+  0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x78, 0x2d, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x6c, 0x69, 0x62, 0x67,
+  0x72, 0x78, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x6c, 0x69,
+  0x6e, 0x75, 0x78, 0x2d, 0x70, 0x73, 0x66, 0x09, 0x09, 0x09, 0x70, 0x73,
+  0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x78, 0x2d, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x6f, 0x74, 0x66,
+  0x09, 0x09, 0x09, 0x09, 0x6f, 0x74, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x66, 0x6f,
+  0x6e, 0x74, 0x2d, 0x70, 0x63, 0x66, 0x09, 0x09, 0x09, 0x09, 0x70, 0x63,
+  0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x78, 0x2d, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x6e, 0x66,
+  0x09, 0x09, 0x09, 0x09, 0x73, 0x6e, 0x66, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d,
+  0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x70, 0x65, 0x65, 0x64, 0x6f, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x78, 0x2d, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x75, 0x6e,
+  0x6f, 0x73, 0x2d, 0x6e, 0x65, 0x77, 0x73, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x66, 0x6f,
+  0x6e, 0x74, 0x2d, 0x74, 0x74, 0x66, 0x09, 0x09, 0x09, 0x09, 0x74, 0x74,
+  0x66, 0x20, 0x74, 0x74, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x66, 0x6f, 0x6e, 0x74,
+  0x2d, 0x74, 0x79, 0x70, 0x65, 0x31, 0x09, 0x09, 0x09, 0x70, 0x66, 0x61,
+  0x20, 0x70, 0x66, 0x62, 0x20, 0x70, 0x66, 0x6d, 0x20, 0x61, 0x66, 0x6d,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, 0x6f, 0x66, 0x66, 0x09, 0x09,
+  0x09, 0x09, 0x77, 0x6f, 0x66, 0x66, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x66,
+  0x6f, 0x6e, 0x74, 0x2d, 0x76, 0x66, 0x6f, 0x6e, 0x74, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d,
+  0x66, 0x72, 0x65, 0x65, 0x61, 0x72, 0x63, 0x09, 0x09, 0x09, 0x09, 0x61,
+  0x72, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x73,
+  0x70, 0x6c, 0x61, 0x73, 0x68, 0x09, 0x09, 0x09, 0x73, 0x70, 0x6c, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x78, 0x2d, 0x67, 0x63, 0x61, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65,
+  0x73, 0x73, 0x65, 0x64, 0x09, 0x09, 0x09, 0x67, 0x63, 0x61, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78,
+  0x2d, 0x67, 0x6c, 0x75, 0x6c, 0x78, 0x09, 0x09, 0x09, 0x09, 0x75, 0x6c,
+  0x78, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x78, 0x2d, 0x67, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63,
+  0x09, 0x09, 0x09, 0x09, 0x67, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x78, 0x2d, 0x67, 0x72, 0x61, 0x6d, 0x70, 0x73, 0x2d, 0x78, 0x6d,
+  0x6c, 0x09, 0x09, 0x09, 0x67, 0x72, 0x61, 0x6d, 0x70, 0x73, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78,
+  0x2d, 0x67, 0x74, 0x61, 0x72, 0x09, 0x09, 0x09, 0x09, 0x67, 0x74, 0x61,
+  0x72, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x67, 0x7a, 0x69, 0x70, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78,
+  0x2d, 0x68, 0x64, 0x66, 0x09, 0x09, 0x09, 0x09, 0x68, 0x64, 0x66, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x78, 0x2d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x2d, 0x69, 0x6e,
+  0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x09, 0x09,
+  0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x69, 0x73,
+  0x6f, 0x39, 0x36, 0x36, 0x30, 0x2d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x09,
+  0x09, 0x09, 0x69, 0x73, 0x6f, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6a, 0x61, 0x76, 0x61,
+  0x2d, 0x6a, 0x6e, 0x6c, 0x70, 0x2d, 0x66, 0x69, 0x6c, 0x65, 0x09, 0x09,
+  0x09, 0x6a, 0x6e, 0x6c, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6c, 0x61, 0x74, 0x65,
+  0x78, 0x09, 0x09, 0x09, 0x09, 0x6c, 0x61, 0x74, 0x65, 0x78, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78,
+  0x2d, 0x6c, 0x7a, 0x68, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73,
+  0x73, 0x65, 0x64, 0x09, 0x09, 0x09, 0x6c, 0x7a, 0x68, 0x20, 0x6c, 0x68,
+  0x61, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x69, 0x65, 0x09, 0x09, 0x09, 0x09, 0x6d,
+  0x69, 0x65, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x6f, 0x62, 0x69, 0x70, 0x6f, 0x63,
+  0x6b, 0x65, 0x74, 0x2d, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x09, 0x09, 0x09,
+  0x70, 0x72, 0x63, 0x20, 0x6d, 0x6f, 0x62, 0x69, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6d,
+  0x73, 0x2d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x09, 0x09, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x2d, 0x73, 0x68, 0x6f,
+  0x72, 0x74, 0x63, 0x75, 0x74, 0x09, 0x09, 0x09, 0x6c, 0x6e, 0x6b, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x78, 0x2d, 0x6d, 0x73, 0x2d, 0x77, 0x6d, 0x64, 0x09, 0x09, 0x09, 0x09,
+  0x77, 0x6d, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x2d, 0x77, 0x6d, 0x7a,
+  0x09, 0x09, 0x09, 0x09, 0x77, 0x6d, 0x7a, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73,
+  0x2d, 0x78, 0x62, 0x61, 0x70, 0x09, 0x09, 0x09, 0x09, 0x78, 0x62, 0x61,
+  0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
+  0x09, 0x09, 0x09, 0x09, 0x6d, 0x64, 0x62, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73,
+  0x62, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x09, 0x09, 0x09, 0x09, 0x6f, 0x62,
+  0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x63, 0x61, 0x72, 0x64, 0x66, 0x69,
+  0x6c, 0x65, 0x09, 0x09, 0x09, 0x63, 0x72, 0x64, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6d,
+  0x73, 0x63, 0x6c, 0x69, 0x70, 0x09, 0x09, 0x09, 0x09, 0x63, 0x6c, 0x70,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61,
+  0x64, 0x09, 0x09, 0x09, 0x65, 0x78, 0x65, 0x20, 0x64, 0x6c, 0x6c, 0x20,
+  0x63, 0x6f, 0x6d, 0x20, 0x62, 0x61, 0x74, 0x20, 0x6d, 0x73, 0x69, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x78, 0x2d, 0x6d, 0x73, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x76, 0x69, 0x65,
+  0x77, 0x09, 0x09, 0x09, 0x6d, 0x76, 0x62, 0x20, 0x6d, 0x31, 0x33, 0x20,
+  0x6d, 0x31, 0x34, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x6d, 0x65, 0x74, 0x61,
+  0x66, 0x69, 0x6c, 0x65, 0x09, 0x09, 0x09, 0x77, 0x6d, 0x66, 0x20, 0x77,
+  0x6d, 0x7a, 0x20, 0x65, 0x6d, 0x66, 0x20, 0x65, 0x6d, 0x7a, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78,
+  0x2d, 0x6d, 0x73, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x09, 0x09, 0x09, 0x09,
+  0x6d, 0x6e, 0x79, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x70, 0x75, 0x62, 0x6c,
+  0x69, 0x73, 0x68, 0x65, 0x72, 0x09, 0x09, 0x09, 0x70, 0x75, 0x62, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x78, 0x2d, 0x6d, 0x73, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65,
+  0x09, 0x09, 0x09, 0x73, 0x63, 0x64, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x74,
+  0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x09, 0x09, 0x09, 0x74, 0x72,
+  0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x77, 0x72, 0x69, 0x74, 0x65, 0x09,
+  0x09, 0x09, 0x09, 0x77, 0x72, 0x69, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x6e, 0x65, 0x74,
+  0x63, 0x64, 0x66, 0x09, 0x09, 0x09, 0x09, 0x6e, 0x63, 0x20, 0x63, 0x64,
+  0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x78, 0x2d, 0x6e, 0x7a, 0x62, 0x09, 0x09, 0x09, 0x09, 0x6e,
+  0x7a, 0x62, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x70, 0x6b, 0x63, 0x73, 0x31, 0x32, 0x09,
+  0x09, 0x09, 0x09, 0x70, 0x31, 0x32, 0x20, 0x70, 0x66, 0x78, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78,
+  0x2d, 0x70, 0x6b, 0x63, 0x73, 0x37, 0x2d, 0x63, 0x65, 0x72, 0x74, 0x69,
+  0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x09, 0x09, 0x70, 0x37, 0x62,
+  0x20, 0x73, 0x70, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x70, 0x6b, 0x63, 0x73, 0x37,
+  0x2d, 0x63, 0x65, 0x72, 0x74, 0x72, 0x65, 0x71, 0x72, 0x65, 0x73, 0x70,
+  0x09, 0x09, 0x09, 0x70, 0x37, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x72, 0x61, 0x72,
+  0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x09,
+  0x09, 0x09, 0x72, 0x61, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x72, 0x65, 0x73, 0x65,
+  0x61, 0x72, 0x63, 0x68, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x2d, 0x73, 0x79,
+  0x73, 0x74, 0x65, 0x6d, 0x73, 0x09, 0x09, 0x72, 0x69, 0x73, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78,
+  0x2d, 0x73, 0x68, 0x09, 0x09, 0x09, 0x09, 0x73, 0x68, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d,
+  0x73, 0x68, 0x61, 0x72, 0x09, 0x09, 0x09, 0x09, 0x73, 0x68, 0x61, 0x72,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x78, 0x2d, 0x73, 0x68, 0x6f, 0x63, 0x6b, 0x77, 0x61, 0x76, 0x65,
+  0x2d, 0x66, 0x6c, 0x61, 0x73, 0x68, 0x09, 0x09, 0x09, 0x73, 0x77, 0x66,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x78, 0x2d, 0x73, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x6c, 0x69, 0x67,
+  0x68, 0x74, 0x2d, 0x61, 0x70, 0x70, 0x09, 0x09, 0x09, 0x78, 0x61, 0x70,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x78, 0x2d, 0x73, 0x71, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x73, 0x71,
+  0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x78, 0x2d, 0x73, 0x74, 0x75, 0x66, 0x66, 0x69, 0x74, 0x09,
+  0x09, 0x09, 0x09, 0x73, 0x69, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x73, 0x74, 0x75,
+  0x66, 0x66, 0x69, 0x74, 0x78, 0x09, 0x09, 0x09, 0x09, 0x73, 0x69, 0x74,
+  0x78, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x78, 0x2d, 0x73, 0x75, 0x62, 0x72, 0x69, 0x70, 0x09, 0x09,
+  0x09, 0x09, 0x73, 0x72, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x73, 0x76, 0x34, 0x63,
+  0x70, 0x69, 0x6f, 0x09, 0x09, 0x09, 0x09, 0x73, 0x76, 0x34, 0x63, 0x70,
+  0x69, 0x6f, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x73, 0x76, 0x34, 0x63, 0x72, 0x63, 0x09,
+  0x09, 0x09, 0x09, 0x73, 0x76, 0x34, 0x63, 0x72, 0x63, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d,
+  0x74, 0x33, 0x76, 0x6d, 0x2d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x09, 0x09,
+  0x09, 0x74, 0x33, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x74, 0x61, 0x64, 0x73, 0x09, 0x09,
+  0x09, 0x09, 0x67, 0x61, 0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x74, 0x61, 0x72, 0x09,
+  0x09, 0x09, 0x09, 0x74, 0x61, 0x72, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x74, 0x63, 0x6c,
+  0x09, 0x09, 0x09, 0x09, 0x74, 0x63, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x74, 0x65,
+  0x78, 0x09, 0x09, 0x09, 0x09, 0x74, 0x65, 0x78, 0x0a, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x74,
+  0x65, 0x78, 0x2d, 0x74, 0x66, 0x6d, 0x09, 0x09, 0x09, 0x09, 0x74, 0x66,
+  0x6d, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x78, 0x2d, 0x74, 0x65, 0x78, 0x69, 0x6e, 0x66, 0x6f, 0x09,
+  0x09, 0x09, 0x09, 0x74, 0x65, 0x78, 0x69, 0x6e, 0x66, 0x6f, 0x20, 0x74,
+  0x65, 0x78, 0x69, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x74, 0x67, 0x69, 0x66, 0x09, 0x09,
+  0x09, 0x09, 0x6f, 0x62, 0x6a, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x75, 0x73, 0x74, 0x61,
+  0x72, 0x09, 0x09, 0x09, 0x09, 0x75, 0x73, 0x74, 0x61, 0x72, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78,
+  0x2d, 0x77, 0x61, 0x69, 0x73, 0x2d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
+  0x09, 0x09, 0x09, 0x73, 0x72, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x78, 0x35, 0x30,
+  0x39, 0x2d, 0x63, 0x61, 0x2d, 0x63, 0x65, 0x72, 0x74, 0x09, 0x09, 0x09,
+  0x64, 0x65, 0x72, 0x20, 0x63, 0x72, 0x74, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x78, 0x66,
+  0x69, 0x67, 0x09, 0x09, 0x09, 0x09, 0x66, 0x69, 0x67, 0x0a, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d,
+  0x78, 0x6c, 0x69, 0x66, 0x66, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09,
+  0x09, 0x78, 0x6c, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x2d, 0x78, 0x70, 0x69, 0x6e, 0x73,
+  0x74, 0x61, 0x6c, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x78, 0x70, 0x69, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x78, 0x2d, 0x78, 0x7a, 0x09, 0x09, 0x09, 0x09, 0x78, 0x7a, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78,
+  0x2d, 0x7a, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x09, 0x09, 0x09,
+  0x09, 0x7a, 0x31, 0x20, 0x7a, 0x32, 0x20, 0x7a, 0x33, 0x20, 0x7a, 0x34,
+  0x20, 0x7a, 0x35, 0x20, 0x7a, 0x36, 0x20, 0x7a, 0x37, 0x20, 0x7a, 0x38,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x78, 0x34, 0x30, 0x30, 0x2d, 0x62, 0x70, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78,
+  0x61, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x78,
+  0x61, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x63, 0x61, 0x70, 0x2d, 0x61,
+  0x74, 0x74, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x63, 0x61,
+  0x70, 0x2d, 0x63, 0x61, 0x70, 0x73, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78,
+  0x63, 0x61, 0x70, 0x2d, 0x64, 0x69, 0x66, 0x66, 0x2b, 0x78, 0x6d, 0x6c,
+  0x09, 0x09, 0x09, 0x78, 0x64, 0x66, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x63, 0x61,
+  0x70, 0x2d, 0x65, 0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61,
+  0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78,
+  0x63, 0x61, 0x70, 0x2d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2b, 0x78, 0x6d,
+  0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x63, 0x61, 0x70, 0x2d, 0x6e, 0x73, 0x2b,
+  0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x63, 0x6f, 0x6e, 0x2d, 0x63,
+  0x6f, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x2d, 0x69, 0x6e,
+  0x66, 0x6f, 0x2d, 0x64, 0x69, 0x66, 0x66, 0x2b, 0x78, 0x6d, 0x6c, 0x0a,
+  0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+  0x6e, 0x2f, 0x78, 0x63, 0x6f, 0x6e, 0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x65,
+  0x72, 0x65, 0x6e, 0x63, 0x65, 0x2d, 0x69, 0x6e, 0x66, 0x6f, 0x2b, 0x78,
+  0x6d, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x78, 0x65, 0x6e, 0x63, 0x2b, 0x78, 0x6d, 0x6c, 0x09,
+  0x09, 0x09, 0x09, 0x78, 0x65, 0x6e, 0x63, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x68, 0x74, 0x6d,
+  0x6c, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x78, 0x68, 0x74,
+  0x6d, 0x6c, 0x20, 0x78, 0x68, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x70, 0x70,
+  0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x68, 0x74,
+  0x6d, 0x6c, 0x2d, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2b, 0x78, 0x6d, 0x6c,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x09, 0x78, 0x6d, 0x6c,
+  0x20, 0x78, 0x73, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+  0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x6d, 0x6c, 0x2d, 0x64, 0x74, 0x64,
+  0x09, 0x09, 0x09, 0x09, 0x64, 0x74, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x70,
+  0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x6d,
+  0x6c, 0x2d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2d, 0x70,
+  0x61, 0x72, 0x73, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
+  0x0a, 0x23, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x78, 0x6d, 0x70, 0x70, 0x2b, 0x78, 0x6d, 0x6c, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x78, 0x6f, 0x70, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x78,
+  0x6f, 0x70, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x2f, 0x78, 0x70, 0x72, 0x6f, 0x63, 0x2b, 0x78, 0x6d, 0x6c,
+  0x09, 0x09, 0x09, 0x09, 0x78, 0x70, 0x6c, 0x0a, 0x61, 0x70, 0x70, 0x6c,
+  0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x73, 0x6c, 0x74,
+  0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x78, 0x73, 0x6c, 0x74,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x78, 0x73, 0x70, 0x66, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09,
+  0x09, 0x78, 0x73, 0x70, 0x66, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
+  0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78, 0x76, 0x2b, 0x78, 0x6d, 0x6c,
+  0x09, 0x09, 0x09, 0x09, 0x6d, 0x78, 0x6d, 0x6c, 0x20, 0x78, 0x68, 0x76,
+  0x6d, 0x6c, 0x20, 0x78, 0x76, 0x6d, 0x6c, 0x20, 0x78, 0x76, 0x6d, 0x0a,
+  0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
+  0x79, 0x61, 0x6e, 0x67, 0x09, 0x09, 0x09, 0x09, 0x79, 0x61, 0x6e, 0x67,
+  0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+  0x2f, 0x79, 0x69, 0x6e, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09,
+  0x79, 0x69, 0x6e, 0x0a, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+  0x69, 0x6f, 0x6e, 0x2f, 0x7a, 0x69, 0x70, 0x09, 0x09, 0x09, 0x09, 0x09,
+  0x7a, 0x69, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f,
+  0x31, 0x64, 0x2d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6c, 0x65, 0x61, 0x76,
+  0x65, 0x64, 0x2d, 0x70, 0x61, 0x72, 0x69, 0x74, 0x79, 0x66, 0x65, 0x63,
+  0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x33, 0x32, 0x6b,
+  0x61, 0x64, 0x70, 0x63, 0x6d, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69,
+  0x6f, 0x2f, 0x33, 0x67, 0x70, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64,
+  0x69, 0x6f, 0x2f, 0x33, 0x67, 0x70, 0x70, 0x32, 0x0a, 0x23, 0x20, 0x61,
+  0x75, 0x64, 0x69, 0x6f, 0x2f, 0x61, 0x63, 0x33, 0x0a, 0x61, 0x75, 0x64,
+  0x69, 0x6f, 0x2f, 0x61, 0x64, 0x70, 0x63, 0x6d, 0x09, 0x09, 0x09, 0x09,
+  0x09, 0x61, 0x64, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f,
+  0x2f, 0x61, 0x6d, 0x72, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f,
+  0x2f, 0x61, 0x6d, 0x72, 0x2d, 0x77, 0x62, 0x0a, 0x23, 0x20, 0x61, 0x75,
+  0x64, 0x69, 0x6f, 0x2f, 0x61, 0x6d, 0x72, 0x2d, 0x77, 0x62, 0x2b, 0x0a,
+  0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x61, 0x73, 0x63, 0x0a,
+  0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x61, 0x74, 0x72, 0x61,
+  0x63, 0x2d, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x2d, 0x6c,
+  0x6f, 0x73, 0x73, 0x6c, 0x65, 0x73, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x75,
+  0x64, 0x69, 0x6f, 0x2f, 0x61, 0x74, 0x72, 0x61, 0x63, 0x2d, 0x78, 0x0a,
+  0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x61, 0x74, 0x72, 0x61,
+  0x63, 0x33, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x62, 0x61, 0x73,
+  0x69, 0x63, 0x09, 0x09, 0x09, 0x09, 0x09, 0x61, 0x75, 0x20, 0x73, 0x6e,
+  0x64, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x62, 0x76,
+  0x31, 0x36, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x62,
+  0x76, 0x33, 0x32, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f,
+  0x63, 0x6c, 0x65, 0x61, 0x72, 0x6d, 0x6f, 0x64, 0x65, 0x0a, 0x23, 0x20,
+  0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x63, 0x6e, 0x0a, 0x23, 0x20, 0x61,
+  0x75, 0x64, 0x69, 0x6f, 0x2f, 0x64, 0x61, 0x74, 0x31, 0x32, 0x0a, 0x23,
+  0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x64, 0x6c, 0x73, 0x0a, 0x23,
+  0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x64, 0x73, 0x72, 0x2d, 0x65,
+  0x73, 0x32, 0x30, 0x31, 0x31, 0x30, 0x38, 0x0a, 0x23, 0x20, 0x61, 0x75,
+  0x64, 0x69, 0x6f, 0x2f, 0x64, 0x73, 0x72, 0x2d, 0x65, 0x73, 0x32, 0x30,
+  0x32, 0x30, 0x35, 0x30, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f,
+  0x2f, 0x64, 0x73, 0x72, 0x2d, 0x65, 0x73, 0x32, 0x30, 0x32, 0x32, 0x31,
+  0x31, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x64, 0x73,
+  0x72, 0x2d, 0x65, 0x73, 0x32, 0x30, 0x32, 0x32, 0x31, 0x32, 0x0a, 0x23,
+  0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x64, 0x76, 0x0a, 0x23, 0x20,
+  0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x64, 0x76, 0x69, 0x34, 0x0a, 0x23,
+  0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x65, 0x61, 0x63, 0x33, 0x0a,
+  0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x65, 0x76, 0x72, 0x63,
+  0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x65, 0x76, 0x72,
+  0x63, 0x2d, 0x71, 0x63, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69,
+  0x6f, 0x2f, 0x65, 0x76, 0x72, 0x63, 0x30, 0x0a, 0x23, 0x20, 0x61, 0x75,
+  0x64, 0x69, 0x6f, 0x2f, 0x65, 0x76, 0x72, 0x63, 0x31, 0x0a, 0x23, 0x20,
+  0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x65, 0x76, 0x72, 0x63, 0x62, 0x0a,
+  0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x65, 0x76, 0x72, 0x63,
+  0x62, 0x30, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x65,
+  0x76, 0x72, 0x63, 0x62, 0x31, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69,
+  0x6f, 0x2f, 0x65, 0x76, 0x72, 0x63, 0x77, 0x62, 0x0a, 0x23, 0x20, 0x61,
+  0x75, 0x64, 0x69, 0x6f, 0x2f, 0x65, 0x76, 0x72, 0x63, 0x77, 0x62, 0x30,
+  0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x65, 0x76, 0x72,
+  0x63, 0x77, 0x62, 0x31, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f,
+  0x2f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x0a, 0x23, 0x20, 0x61,
+  0x75, 0x64, 0x69, 0x6f, 0x2f, 0x66, 0x77, 0x64, 0x72, 0x65, 0x64, 0x0a,
+  0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x67, 0x37, 0x31, 0x39,
+  0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x67, 0x37, 0x32,
+  0x32, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x67, 0x37,
+  0x32, 0x32, 0x31, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f,
+  0x67, 0x37, 0x32, 0x33, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f,
+  0x2f, 0x67, 0x37, 0x32, 0x36, 0x2d, 0x31, 0x36, 0x0a, 0x23, 0x20, 0x61,
+  0x75, 0x64, 0x69, 0x6f, 0x2f, 0x67, 0x37, 0x32, 0x36, 0x2d, 0x32, 0x34,
+  0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x67, 0x37, 0x32,
+  0x36, 0x2d, 0x33, 0x32, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f,
+  0x2f, 0x67, 0x37, 0x32, 0x36, 0x2d, 0x34, 0x30, 0x0a, 0x23, 0x20, 0x61,
+  0x75, 0x64, 0x69, 0x6f, 0x2f, 0x67, 0x37, 0x32, 0x38, 0x0a, 0x23, 0x20,
+  0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x67, 0x37, 0x32, 0x39, 0x0a, 0x23,
+  0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x67, 0x37, 0x32, 0x39, 0x31,
+  0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x67, 0x37, 0x32,
+  0x39, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x67,
+  0x37, 0x32, 0x39, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f,
+  0x2f, 0x67, 0x73, 0x6d, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f,
+  0x2f, 0x67, 0x73, 0x6d, 0x2d, 0x65, 0x66, 0x72, 0x0a, 0x23, 0x20, 0x61,
+  0x75, 0x64, 0x69, 0x6f, 0x2f, 0x67, 0x73, 0x6d, 0x2d, 0x68, 0x72, 0x2d,
+  0x30, 0x38, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x69,
+  0x6c, 0x62, 0x63, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f,
+  0x69, 0x70, 0x2d, 0x6d, 0x72, 0x5f, 0x76, 0x32, 0x2e, 0x35, 0x0a, 0x23,
+  0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x69, 0x73, 0x61, 0x63, 0x0a,
+  0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x6c, 0x31, 0x36, 0x0a,
+  0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x6c, 0x32, 0x30, 0x0a,
+  0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x6c, 0x32, 0x34, 0x0a,
+  0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x6c, 0x38, 0x0a, 0x23,
+  0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x6c, 0x70, 0x63, 0x0a, 0x61,
+  0x75, 0x64, 0x69, 0x6f, 0x2f, 0x6d, 0x69, 0x64, 0x69, 0x09, 0x09, 0x09,
+  0x09, 0x09, 0x6d, 0x69, 0x64, 0x20, 0x6d, 0x69, 0x64, 0x69, 0x20, 0x6b,
+  0x61, 0x72, 0x20, 0x72, 0x6d, 0x69, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64,
+  0x69, 0x6f, 0x2f, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x2d, 0x78, 0x6d,
+  0x66, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x6d, 0x70, 0x34, 0x09,
+  0x09, 0x09, 0x09, 0x09, 0x6d, 0x70, 0x34, 0x61, 0x0a, 0x23, 0x20, 0x61,
+  0x75, 0x64, 0x69, 0x6f, 0x2f, 0x6d, 0x70, 0x34, 0x61, 0x2d, 0x6c, 0x61,
+  0x74, 0x6d, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x6d,
+  0x70, 0x61, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x6d,
+  0x70, 0x61, 0x2d, 0x72, 0x6f, 0x62, 0x75, 0x73, 0x74, 0x0a, 0x61, 0x75,
+  0x64, 0x69, 0x6f, 0x2f, 0x6d, 0x70, 0x65, 0x67, 0x09, 0x09, 0x09, 0x09,
+  0x09, 0x6d, 0x70, 0x67, 0x61, 0x20, 0x6d, 0x70, 0x32, 0x20, 0x6d, 0x70,
+  0x32, 0x61, 0x20, 0x6d, 0x70, 0x33, 0x20, 0x6d, 0x32, 0x61, 0x20, 0x6d,
+  0x33, 0x61, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x6d,
+  0x70, 0x65, 0x67, 0x34, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63,
+  0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x6d, 0x75, 0x73,
+  0x65, 0x70, 0x61, 0x63, 0x6b, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f,
+  0x6f, 0x67, 0x67, 0x09, 0x09, 0x09, 0x09, 0x09, 0x6f, 0x67, 0x61, 0x20,
+  0x6f, 0x67, 0x67, 0x20, 0x73, 0x70, 0x78, 0x0a, 0x23, 0x20, 0x61, 0x75,
+  0x64, 0x69, 0x6f, 0x2f, 0x6f, 0x70, 0x75, 0x73, 0x0a, 0x23, 0x20, 0x61,
+  0x75, 0x64, 0x69, 0x6f, 0x2f, 0x70, 0x61, 0x72, 0x69, 0x74, 0x79, 0x66,
+  0x65, 0x63, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x70,
+  0x63, 0x6d, 0x61, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f,
+  0x70, 0x63, 0x6d, 0x61, 0x2d, 0x77, 0x62, 0x0a, 0x23, 0x20, 0x61, 0x75,
+  0x64, 0x69, 0x6f, 0x2f, 0x70, 0x63, 0x6d, 0x75, 0x2d, 0x77, 0x62, 0x0a,
+  0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x70, 0x63, 0x6d, 0x75,
+  0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x70, 0x72, 0x73,
+  0x2e, 0x73, 0x69, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f,
+  0x2f, 0x71, 0x63, 0x65, 0x6c, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64,
+  0x69, 0x6f, 0x2f, 0x72, 0x65, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64,
+  0x69, 0x6f, 0x2f, 0x72, 0x74, 0x70, 0x2d, 0x65, 0x6e, 0x63, 0x2d, 0x61,
+  0x65, 0x73, 0x63, 0x6d, 0x31, 0x32, 0x38, 0x0a, 0x23, 0x20, 0x61, 0x75,
+  0x64, 0x69, 0x6f, 0x2f, 0x72, 0x74, 0x70, 0x2d, 0x6d, 0x69, 0x64, 0x69,
+  0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x72, 0x74, 0x78,
+  0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x73, 0x33, 0x6d, 0x09, 0x09,
+  0x09, 0x09, 0x09, 0x73, 0x33, 0x6d, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f,
+  0x2f, 0x73, 0x69, 0x6c, 0x6b, 0x09, 0x09, 0x09, 0x09, 0x09, 0x73, 0x69,
+  0x6c, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x73, 0x6d,
+  0x76, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x73, 0x6d,
+  0x76, 0x30, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x73,
+  0x6d, 0x76, 0x2d, 0x71, 0x63, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64,
+  0x69, 0x6f, 0x2f, 0x73, 0x70, 0x2d, 0x6d, 0x69, 0x64, 0x69, 0x0a, 0x23,
+  0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x73, 0x70, 0x65, 0x65, 0x78,
+  0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x74, 0x31, 0x34,
+  0x30, 0x63, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x74,
+  0x33, 0x38, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x74,
+  0x65, 0x6c, 0x65, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x2d, 0x65, 0x76, 0x65,
+  0x6e, 0x74, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x74,
+  0x6f, 0x6e, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f,
+  0x75, 0x65, 0x6d, 0x63, 0x6c, 0x69, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x75,
+  0x64, 0x69, 0x6f, 0x2f, 0x75, 0x6c, 0x70, 0x66, 0x65, 0x63, 0x0a, 0x23,
+  0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x64, 0x76, 0x69, 0x0a,
+  0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6d, 0x72, 0x2d,
+  0x77, 0x62, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x33, 0x67, 0x70, 0x70, 0x2e, 0x69, 0x75, 0x66, 0x70,
+  0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x34, 0x73, 0x62, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x6b, 0x6f,
+  0x7a, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x63, 0x65, 0x6c, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64,
+  0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x69, 0x73, 0x63, 0x6f,
+  0x2e, 0x6e, 0x73, 0x65, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x6d, 0x6c, 0x65, 0x73, 0x2e, 0x72,
+  0x61, 0x64, 0x69, 0x6f, 0x2d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x0a,
+  0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x63, 0x6e, 0x73, 0x2e, 0x61, 0x6e, 0x70, 0x31, 0x0a, 0x23, 0x20, 0x61,
+  0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x6e, 0x73,
+  0x2e, 0x69, 0x6e, 0x66, 0x31, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x64, 0x65, 0x63, 0x65, 0x2e, 0x61, 0x75, 0x64,
+  0x69, 0x6f, 0x09, 0x09, 0x09, 0x09, 0x75, 0x76, 0x61, 0x20, 0x75, 0x76,
+  0x76, 0x61, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x2d, 0x77, 0x69, 0x6e,
+  0x64, 0x73, 0x09, 0x09, 0x09, 0x09, 0x65, 0x6f, 0x6c, 0x0a, 0x23, 0x20,
+  0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x6c,
+  0x6e, 0x61, 0x2e, 0x61, 0x64, 0x74, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x75,
+  0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x6f, 0x6c, 0x62,
+  0x79, 0x2e, 0x68, 0x65, 0x61, 0x61, 0x63, 0x2e, 0x31, 0x0a, 0x23, 0x20,
+  0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x6f,
+  0x6c, 0x62, 0x79, 0x2e, 0x68, 0x65, 0x61, 0x61, 0x63, 0x2e, 0x32, 0x0a,
+  0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x64, 0x6f, 0x6c, 0x62, 0x79, 0x2e, 0x6d, 0x6c, 0x70, 0x0a, 0x23, 0x20,
+  0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x6f,
+  0x6c, 0x62, 0x79, 0x2e, 0x6d, 0x70, 0x73, 0x0a, 0x23, 0x20, 0x61, 0x75,
+  0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x6f, 0x6c, 0x62,
+  0x79, 0x2e, 0x70, 0x6c, 0x32, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69,
+  0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x6f, 0x6c, 0x62, 0x79, 0x2e,
+  0x70, 0x6c, 0x32, 0x78, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x6f, 0x6c, 0x62, 0x79, 0x2e, 0x70,
+  0x6c, 0x32, 0x7a, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x64, 0x6f, 0x6c, 0x62, 0x79, 0x2e, 0x70, 0x75,
+  0x6c, 0x73, 0x65, 0x2e, 0x31, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x64, 0x72, 0x61, 0x09, 0x09, 0x09, 0x09, 0x09,
+  0x64, 0x72, 0x61, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x64, 0x74, 0x73, 0x09, 0x09, 0x09, 0x09, 0x09, 0x64, 0x74,
+  0x73, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x64, 0x74, 0x73, 0x2e, 0x68, 0x64, 0x09, 0x09, 0x09, 0x09, 0x64, 0x74,
+  0x73, 0x68, 0x64, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x66, 0x69, 0x6c, 0x65,
+  0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x65, 0x76, 0x65, 0x72, 0x61, 0x64, 0x2e, 0x70, 0x6c, 0x6a, 0x0a,
+  0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x68, 0x6e, 0x73, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x0a, 0x61, 0x75,
+  0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6c, 0x75, 0x63, 0x65,
+  0x6e, 0x74, 0x2e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x09, 0x09, 0x09, 0x09,
+  0x6c, 0x76, 0x70, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x6c, 0x61, 0x79, 0x72, 0x65, 0x61,
+  0x64, 0x79, 0x2e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x2e, 0x70, 0x79, 0x61,
+  0x09, 0x09, 0x70, 0x79, 0x61, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69,
+  0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69, 0x61, 0x2e,
+  0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x2d, 0x78, 0x6d, 0x66, 0x0a, 0x23,
+  0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e,
+  0x6f, 0x72, 0x74, 0x65, 0x6c, 0x2e, 0x76, 0x62, 0x6b, 0x0a, 0x61, 0x75,
+  0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x75, 0x65, 0x72,
+  0x61, 0x2e, 0x65, 0x63, 0x65, 0x6c, 0x70, 0x34, 0x38, 0x30, 0x30, 0x09,
+  0x09, 0x09, 0x65, 0x63, 0x65, 0x6c, 0x70, 0x34, 0x38, 0x30, 0x30, 0x0a,
+  0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x75,
+  0x65, 0x72, 0x61, 0x2e, 0x65, 0x63, 0x65, 0x6c, 0x70, 0x37, 0x34, 0x37,
+  0x30, 0x09, 0x09, 0x09, 0x65, 0x63, 0x65, 0x6c, 0x70, 0x37, 0x34, 0x37,
+  0x30, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x6e, 0x75, 0x65, 0x72, 0x61, 0x2e, 0x65, 0x63, 0x65, 0x6c, 0x70, 0x39,
+  0x36, 0x30, 0x30, 0x09, 0x09, 0x09, 0x65, 0x63, 0x65, 0x6c, 0x70, 0x39,
+  0x36, 0x30, 0x30, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x63, 0x74, 0x65, 0x6c, 0x2e, 0x73, 0x62,
+  0x63, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x71, 0x63, 0x65, 0x6c, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x75,
+  0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x68, 0x65, 0x74,
+  0x6f, 0x72, 0x65, 0x78, 0x2e, 0x33, 0x32, 0x6b, 0x61, 0x64, 0x70, 0x63,
+  0x6d, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x72, 0x69, 0x70, 0x09, 0x09, 0x09, 0x09, 0x09, 0x72, 0x69, 0x70, 0x0a,
+  0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x2e,
+  0x73, 0x6f, 0x66, 0x74, 0x73, 0x65, 0x61, 0x6c, 0x2e, 0x6d, 0x70, 0x65,
+  0x67, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x76, 0x6d, 0x78, 0x2e, 0x63, 0x76, 0x73, 0x64, 0x0a, 0x23,
+  0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6f, 0x72, 0x62, 0x69,
+  0x73, 0x0a, 0x23, 0x20, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x76, 0x6f,
+  0x72, 0x62, 0x69, 0x73, 0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x0a,
+  0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x77, 0x65, 0x62, 0x6d, 0x09, 0x09,
+  0x09, 0x09, 0x09, 0x77, 0x65, 0x62, 0x61, 0x0a, 0x61, 0x75, 0x64, 0x69,
+  0x6f, 0x2f, 0x78, 0x2d, 0x61, 0x61, 0x63, 0x09, 0x09, 0x09, 0x09, 0x09,
+  0x61, 0x61, 0x63, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x78, 0x2d,
+  0x61, 0x69, 0x66, 0x66, 0x09, 0x09, 0x09, 0x09, 0x09, 0x61, 0x69, 0x66,
+  0x20, 0x61, 0x69, 0x66, 0x66, 0x20, 0x61, 0x69, 0x66, 0x63, 0x0a, 0x61,
+  0x75, 0x64, 0x69, 0x6f, 0x2f, 0x78, 0x2d, 0x63, 0x61, 0x66, 0x09, 0x09,
+  0x09, 0x09, 0x09, 0x63, 0x61, 0x66, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f,
+  0x2f, 0x78, 0x2d, 0x66, 0x6c, 0x61, 0x63, 0x09, 0x09, 0x09, 0x09, 0x09,
+  0x66, 0x6c, 0x61, 0x63, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x78,
+  0x2d, 0x6d, 0x61, 0x74, 0x72, 0x6f, 0x73, 0x6b, 0x61, 0x09, 0x09, 0x09,
+  0x09, 0x6d, 0x6b, 0x61, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x78,
+  0x2d, 0x6d, 0x70, 0x65, 0x67, 0x75, 0x72, 0x6c, 0x09, 0x09, 0x09, 0x09,
+  0x09, 0x6d, 0x33, 0x75, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x78,
+  0x2d, 0x6d, 0x73, 0x2d, 0x77, 0x61, 0x78, 0x09, 0x09, 0x09, 0x09, 0x09,
+  0x77, 0x61, 0x78, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x78, 0x2d,
+  0x6d, 0x73, 0x2d, 0x77, 0x6d, 0x61, 0x09, 0x09, 0x09, 0x09, 0x09, 0x77,
+  0x6d, 0x61, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f, 0x78, 0x2d, 0x70,
+  0x6e, 0x2d, 0x72, 0x65, 0x61, 0x6c, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x09,
+  0x09, 0x09, 0x09, 0x72, 0x61, 0x6d, 0x20, 0x72, 0x61, 0x0a, 0x61, 0x75,
+  0x64, 0x69, 0x6f, 0x2f, 0x78, 0x2d, 0x70, 0x6e, 0x2d, 0x72, 0x65, 0x61,
+  0x6c, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2d, 0x70, 0x6c, 0x75, 0x67, 0x69,
+  0x6e, 0x09, 0x09, 0x09, 0x72, 0x6d, 0x70, 0x0a, 0x23, 0x20, 0x61, 0x75,
+  0x64, 0x69, 0x6f, 0x2f, 0x78, 0x2d, 0x74, 0x74, 0x61, 0x0a, 0x61, 0x75,
+  0x64, 0x69, 0x6f, 0x2f, 0x78, 0x2d, 0x77, 0x61, 0x76, 0x09, 0x09, 0x09,
+  0x09, 0x09, 0x77, 0x61, 0x76, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x2f,
+  0x78, 0x6d, 0x09, 0x09, 0x09, 0x09, 0x09, 0x78, 0x6d, 0x0a, 0x63, 0x68,
+  0x65, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x2f, 0x78, 0x2d, 0x63, 0x64, 0x78,
+  0x09, 0x09, 0x09, 0x09, 0x09, 0x63, 0x64, 0x78, 0x0a, 0x63, 0x68, 0x65,
+  0x6d, 0x69, 0x63, 0x61, 0x6c, 0x2f, 0x78, 0x2d, 0x63, 0x69, 0x66, 0x09,
+  0x09, 0x09, 0x09, 0x09, 0x63, 0x69, 0x66, 0x0a, 0x63, 0x68, 0x65, 0x6d,
+  0x69, 0x63, 0x61, 0x6c, 0x2f, 0x78, 0x2d, 0x63, 0x6d, 0x64, 0x66, 0x09,
+  0x09, 0x09, 0x09, 0x09, 0x63, 0x6d, 0x64, 0x66, 0x0a, 0x63, 0x68, 0x65,
+  0x6d, 0x69, 0x63, 0x61, 0x6c, 0x2f, 0x78, 0x2d, 0x63, 0x6d, 0x6c, 0x09,
+  0x09, 0x09, 0x09, 0x09, 0x63, 0x6d, 0x6c, 0x0a, 0x63, 0x68, 0x65, 0x6d,
+  0x69, 0x63, 0x61, 0x6c, 0x2f, 0x78, 0x2d, 0x63, 0x73, 0x6d, 0x6c, 0x09,
+  0x09, 0x09, 0x09, 0x09, 0x63, 0x73, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x63,
+  0x68, 0x65, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x2f, 0x78, 0x2d, 0x70, 0x64,
+  0x62, 0x0a, 0x63, 0x68, 0x65, 0x6d, 0x69, 0x63, 0x61, 0x6c, 0x2f, 0x78,
+  0x2d, 0x78, 0x79, 0x7a, 0x09, 0x09, 0x09, 0x09, 0x09, 0x78, 0x79, 0x7a,
+  0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x62, 0x6d, 0x70, 0x09, 0x09,
+  0x09, 0x09, 0x09, 0x62, 0x6d, 0x70, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65,
+  0x2f, 0x63, 0x67, 0x6d, 0x09, 0x09, 0x09, 0x09, 0x09, 0x63, 0x67, 0x6d,
+  0x0a, 0x23, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x65, 0x78, 0x61,
+  0x6d, 0x70, 0x6c, 0x65, 0x0a, 0x23, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65,
+  0x2f, 0x66, 0x69, 0x74, 0x73, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f,
+  0x67, 0x33, 0x66, 0x61, 0x78, 0x09, 0x09, 0x09, 0x09, 0x09, 0x67, 0x33,
+  0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x67, 0x69, 0x66, 0x09, 0x09,
+  0x09, 0x09, 0x09, 0x67, 0x69, 0x66, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65,
+  0x2f, 0x69, 0x65, 0x66, 0x09, 0x09, 0x09, 0x09, 0x09, 0x69, 0x65, 0x66,
+  0x0a, 0x23, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x6a, 0x70, 0x32,
+  0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x6a, 0x70, 0x65, 0x67, 0x09,
+  0x09, 0x09, 0x09, 0x09, 0x6a, 0x70, 0x65, 0x67, 0x20, 0x6a, 0x70, 0x67,
+  0x20, 0x6a, 0x70, 0x65, 0x0a, 0x23, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65,
+  0x2f, 0x6a, 0x70, 0x6d, 0x0a, 0x23, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65,
+  0x2f, 0x6a, 0x70, 0x78, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x6b,
+  0x74, 0x78, 0x09, 0x09, 0x09, 0x09, 0x09, 0x6b, 0x74, 0x78, 0x0a, 0x23,
+  0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x6e, 0x61, 0x70, 0x6c, 0x70,
+  0x73, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x70, 0x6e, 0x67, 0x09,
+  0x09, 0x09, 0x09, 0x09, 0x70, 0x6e, 0x67, 0x0a, 0x69, 0x6d, 0x61, 0x67,
+  0x65, 0x2f, 0x70, 0x72, 0x73, 0x2e, 0x62, 0x74, 0x69, 0x66, 0x09, 0x09,
+  0x09, 0x09, 0x09, 0x62, 0x74, 0x69, 0x66, 0x0a, 0x23, 0x20, 0x69, 0x6d,
+  0x61, 0x67, 0x65, 0x2f, 0x70, 0x72, 0x73, 0x2e, 0x70, 0x74, 0x69, 0x0a,
+  0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x73, 0x67, 0x69, 0x09, 0x09, 0x09,
+  0x09, 0x09, 0x73, 0x67, 0x69, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f,
+  0x73, 0x76, 0x67, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x09,
+  0x73, 0x76, 0x67, 0x20, 0x73, 0x76, 0x67, 0x7a, 0x0a, 0x23, 0x20, 0x69,
+  0x6d, 0x61, 0x67, 0x65, 0x2f, 0x74, 0x33, 0x38, 0x0a, 0x69, 0x6d, 0x61,
+  0x67, 0x65, 0x2f, 0x74, 0x69, 0x66, 0x66, 0x09, 0x09, 0x09, 0x09, 0x09,
+  0x74, 0x69, 0x66, 0x66, 0x20, 0x74, 0x69, 0x66, 0x0a, 0x23, 0x20, 0x69,
+  0x6d, 0x61, 0x67, 0x65, 0x2f, 0x74, 0x69, 0x66, 0x66, 0x2d, 0x66, 0x78,
+  0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x61,
+  0x64, 0x6f, 0x62, 0x65, 0x2e, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x73, 0x68,
+  0x6f, 0x70, 0x09, 0x09, 0x09, 0x70, 0x73, 0x64, 0x0a, 0x23, 0x20, 0x69,
+  0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x6e, 0x73,
+  0x2e, 0x69, 0x6e, 0x66, 0x32, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x64, 0x65, 0x63, 0x65, 0x2e, 0x67, 0x72, 0x61,
+  0x70, 0x68, 0x69, 0x63, 0x09, 0x09, 0x09, 0x09, 0x75, 0x76, 0x69, 0x20,
+  0x75, 0x76, 0x76, 0x69, 0x20, 0x75, 0x76, 0x67, 0x20, 0x75, 0x76, 0x76,
+  0x67, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x64, 0x76, 0x62, 0x2e, 0x73, 0x75, 0x62, 0x74, 0x69, 0x74, 0x6c, 0x65,
+  0x09, 0x09, 0x09, 0x09, 0x73, 0x75, 0x62, 0x0a, 0x69, 0x6d, 0x61, 0x67,
+  0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x6a, 0x76, 0x75, 0x09, 0x09,
+  0x09, 0x09, 0x09, 0x64, 0x6a, 0x76, 0x75, 0x20, 0x64, 0x6a, 0x76, 0x0a,
+  0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x77,
+  0x67, 0x09, 0x09, 0x09, 0x09, 0x09, 0x64, 0x77, 0x67, 0x0a, 0x69, 0x6d,
+  0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x78, 0x66, 0x09,
+  0x09, 0x09, 0x09, 0x09, 0x64, 0x78, 0x66, 0x0a, 0x69, 0x6d, 0x61, 0x67,
+  0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x61, 0x73, 0x74, 0x62, 0x69,
+  0x64, 0x73, 0x68, 0x65, 0x65, 0x74, 0x09, 0x09, 0x09, 0x09, 0x66, 0x62,
+  0x73, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x66, 0x70, 0x78, 0x09, 0x09, 0x09, 0x09, 0x09, 0x66, 0x70, 0x78, 0x0a,
+  0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x73,
+  0x74, 0x09, 0x09, 0x09, 0x09, 0x09, 0x66, 0x73, 0x74, 0x0a, 0x69, 0x6d,
+  0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x75, 0x6a, 0x69,
+  0x78, 0x65, 0x72, 0x6f, 0x78, 0x2e, 0x65, 0x64, 0x6d, 0x69, 0x63, 0x73,
+  0x2d, 0x6d, 0x6d, 0x72, 0x09, 0x09, 0x09, 0x6d, 0x6d, 0x72, 0x0a, 0x69,
+  0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x75, 0x6a,
+  0x69, 0x78, 0x65, 0x72, 0x6f, 0x78, 0x2e, 0x65, 0x64, 0x6d, 0x69, 0x63,
+  0x73, 0x2d, 0x72, 0x6c, 0x63, 0x09, 0x09, 0x09, 0x72, 0x6c, 0x63, 0x0a,
+  0x23, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69,
+  0x63, 0x73, 0x2e, 0x70, 0x67, 0x62, 0x0a, 0x23, 0x20, 0x69, 0x6d, 0x61,
+  0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x69, 0x63, 0x72, 0x6f,
+  0x73, 0x6f, 0x66, 0x74, 0x2e, 0x69, 0x63, 0x6f, 0x6e, 0x0a, 0x23, 0x20,
+  0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x69,
+  0x78, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x6d, 0x73, 0x2d, 0x6d, 0x6f, 0x64, 0x69, 0x09, 0x09, 0x09, 0x09, 0x6d,
+  0x64, 0x69, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x6d, 0x73, 0x2d, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x09, 0x09, 0x09,
+  0x09, 0x77, 0x64, 0x70, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x2d, 0x66, 0x70, 0x78, 0x09, 0x09,
+  0x09, 0x09, 0x6e, 0x70, 0x78, 0x0a, 0x23, 0x20, 0x69, 0x6d, 0x61, 0x67,
+  0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x64, 0x69, 0x61, 0x6e,
+  0x63, 0x65, 0x0a, 0x23, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x2e, 0x70, 0x6e,
+  0x67, 0x0a, 0x23, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x6d, 0x65, 0x64, 0x69,
+  0x61, 0x2e, 0x73, 0x6f, 0x66, 0x74, 0x73, 0x65, 0x61, 0x6c, 0x2e, 0x67,
+  0x69, 0x66, 0x0a, 0x23, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x6d, 0x65, 0x64,
+  0x69, 0x61, 0x2e, 0x73, 0x6f, 0x66, 0x74, 0x73, 0x65, 0x61, 0x6c, 0x2e,
+  0x6a, 0x70, 0x67, 0x0a, 0x23, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x73, 0x76, 0x66, 0x0a, 0x69, 0x6d, 0x61, 0x67,
+  0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x61, 0x70, 0x2e, 0x77, 0x62,
+  0x6d, 0x70, 0x09, 0x09, 0x09, 0x09, 0x77, 0x62, 0x6d, 0x70, 0x0a, 0x69,
+  0x6d, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x78, 0x69, 0x66,
+  0x66, 0x09, 0x09, 0x09, 0x09, 0x09, 0x78, 0x69, 0x66, 0x0a, 0x69, 0x6d,
+  0x61, 0x67, 0x65, 0x2f, 0x77, 0x65, 0x62, 0x70, 0x09, 0x09, 0x09, 0x09,
+  0x09, 0x77, 0x65, 0x62, 0x70, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f,
+  0x78, 0x2d, 0x33, 0x64, 0x73, 0x09, 0x09, 0x09, 0x09, 0x09, 0x33, 0x64,
+  0x73, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, 0x63, 0x6d,
+  0x75, 0x2d, 0x72, 0x61, 0x73, 0x74, 0x65, 0x72, 0x09, 0x09, 0x09, 0x09,
+  0x72, 0x61, 0x73, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d,
+  0x63, 0x6d, 0x78, 0x09, 0x09, 0x09, 0x09, 0x09, 0x63, 0x6d, 0x78, 0x0a,
+  0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, 0x66, 0x72, 0x65, 0x65,
+  0x68, 0x61, 0x6e, 0x64, 0x09, 0x09, 0x09, 0x09, 0x66, 0x68, 0x20, 0x66,
+  0x68, 0x63, 0x20, 0x66, 0x68, 0x34, 0x20, 0x66, 0x68, 0x35, 0x20, 0x66,
+  0x68, 0x37, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, 0x69,
+  0x63, 0x6f, 0x6e, 0x09, 0x09, 0x09, 0x09, 0x09, 0x69, 0x63, 0x6f, 0x0a,
+  0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, 0x6d, 0x72, 0x73, 0x69,
+  0x64, 0x2d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x09, 0x09, 0x09, 0x09, 0x73,
+  0x69, 0x64, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, 0x70,
+  0x63, 0x78, 0x09, 0x09, 0x09, 0x09, 0x09, 0x70, 0x63, 0x78, 0x0a, 0x69,
+  0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, 0x70, 0x69, 0x63, 0x74, 0x09,
+  0x09, 0x09, 0x09, 0x09, 0x70, 0x69, 0x63, 0x20, 0x70, 0x63, 0x74, 0x0a,
+  0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, 0x70, 0x6f, 0x72, 0x74,
+  0x61, 0x62, 0x6c, 0x65, 0x2d, 0x61, 0x6e, 0x79, 0x6d, 0x61, 0x70, 0x09,
+  0x09, 0x09, 0x09, 0x70, 0x6e, 0x6d, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65,
+  0x2f, 0x78, 0x2d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d,
+  0x62, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x09, 0x09, 0x09, 0x09, 0x70, 0x62,
+  0x6d, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, 0x70, 0x6f,
+  0x72, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x67, 0x72, 0x61, 0x79, 0x6d,
+  0x61, 0x70, 0x09, 0x09, 0x09, 0x70, 0x67, 0x6d, 0x0a, 0x69, 0x6d, 0x61,
+  0x67, 0x65, 0x2f, 0x78, 0x2d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x62, 0x6c,
+  0x65, 0x2d, 0x70, 0x69, 0x78, 0x6d, 0x61, 0x70, 0x09, 0x09, 0x09, 0x09,
+  0x70, 0x70, 0x6d, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d,
+  0x72, 0x67, 0x62, 0x09, 0x09, 0x09, 0x09, 0x09, 0x72, 0x67, 0x62, 0x0a,
+  0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x78, 0x2d, 0x74, 0x67, 0x61, 0x09,
+  0x09, 0x09, 0x09, 0x09, 0x74, 0x67, 0x61, 0x0a, 0x69, 0x6d, 0x61, 0x67,
+  0x65, 0x2f, 0x78, 0x2d, 0x78, 0x62, 0x69, 0x74, 0x6d, 0x61, 0x70, 0x09,
+  0x09, 0x09, 0x09, 0x09, 0x78, 0x62, 0x6d, 0x0a, 0x69, 0x6d, 0x61, 0x67,
+  0x65, 0x2f, 0x78, 0x2d, 0x78, 0x70, 0x69, 0x78, 0x6d, 0x61, 0x70, 0x09,
+  0x09, 0x09, 0x09, 0x09, 0x78, 0x70, 0x6d, 0x0a, 0x69, 0x6d, 0x61, 0x67,
+  0x65, 0x2f, 0x78, 0x2d, 0x78, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x64,
+  0x75, 0x6d, 0x70, 0x09, 0x09, 0x09, 0x09, 0x78, 0x77, 0x64, 0x0a, 0x23,
+  0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x63, 0x70, 0x69,
+  0x6d, 0x0a, 0x23, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f,
+  0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x2d, 0x73, 0x74, 0x61,
+  0x74, 0x75, 0x73, 0x0a, 0x23, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
+  0x65, 0x2f, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
+  0x6e, 0x2d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
+  0x6f, 0x6e, 0x0a, 0x23, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+  0x2f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x0a, 0x23, 0x20, 0x6d,
+  0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x72,
+  0x6e, 0x61, 0x6c, 0x2d, 0x62, 0x6f, 0x64, 0x79, 0x0a, 0x23, 0x20, 0x6d,
+  0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x66, 0x65, 0x65, 0x64, 0x62,
+  0x61, 0x63, 0x6b, 0x2d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x0a, 0x23,
+  0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x67, 0x6c, 0x6f,
+  0x62, 0x61, 0x6c, 0x0a, 0x23, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
+  0x65, 0x2f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2d, 0x64, 0x65, 0x6c,
+  0x69, 0x76, 0x65, 0x72, 0x79, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
+  0x0a, 0x23, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x67,
+  0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2d, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73,
+  0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69,
+  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x23, 0x20, 0x6d, 0x65, 0x73,
+  0x73, 0x61, 0x67, 0x65, 0x2f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2d,
+  0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x0a, 0x23, 0x20, 0x6d, 0x65,
+  0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x0a, 0x23,
+  0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x69, 0x6d, 0x64,
+  0x6e, 0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x6d, 0x65, 0x73, 0x73,
+  0x61, 0x67, 0x65, 0x2f, 0x6e, 0x65, 0x77, 0x73, 0x0a, 0x23, 0x20, 0x6d,
+  0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x70, 0x61, 0x72, 0x74, 0x69,
+  0x61, 0x6c, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x72,
+  0x66, 0x63, 0x38, 0x32, 0x32, 0x09, 0x09, 0x09, 0x09, 0x09, 0x65, 0x6d,
+  0x6c, 0x20, 0x6d, 0x69, 0x6d, 0x65, 0x0a, 0x23, 0x20, 0x6d, 0x65, 0x73,
+  0x73, 0x61, 0x67, 0x65, 0x2f, 0x73, 0x2d, 0x68, 0x74, 0x74, 0x70, 0x0a,
+  0x23, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x73, 0x69,
+  0x70, 0x0a, 0x23, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f,
+  0x73, 0x69, 0x70, 0x66, 0x72, 0x61, 0x67, 0x0a, 0x23, 0x20, 0x6d, 0x65,
+  0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69,
+  0x6e, 0x67, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x0a, 0x23, 0x20,
+  0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x73, 0x69, 0x2e, 0x73, 0x69, 0x6d, 0x70, 0x0a, 0x23, 0x20, 0x6d, 0x6f,
+  0x64, 0x65, 0x6c, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x0a,
+  0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x69, 0x67, 0x65, 0x73, 0x09, 0x09,
+  0x09, 0x09, 0x09, 0x69, 0x67, 0x73, 0x20, 0x69, 0x67, 0x65, 0x73, 0x0a,
+  0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x09, 0x09,
+  0x09, 0x09, 0x09, 0x6d, 0x73, 0x68, 0x20, 0x6d, 0x65, 0x73, 0x68, 0x20,
+  0x73, 0x69, 0x6c, 0x6f, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x64, 0x61, 0x2b, 0x78,
+  0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x64, 0x61, 0x65, 0x0a, 0x6d, 0x6f,
+  0x64, 0x65, 0x6c, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x77, 0x66, 0x09,
+  0x09, 0x09, 0x09, 0x09, 0x64, 0x77, 0x66, 0x0a, 0x23, 0x20, 0x6d, 0x6f,
+  0x64, 0x65, 0x6c, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x6c, 0x61, 0x74,
+  0x6c, 0x61, 0x6e, 0x64, 0x2e, 0x33, 0x64, 0x6d, 0x6c, 0x0a, 0x6d, 0x6f,
+  0x64, 0x65, 0x6c, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x64, 0x6c, 0x09,
+  0x09, 0x09, 0x09, 0x09, 0x67, 0x64, 0x6c, 0x0a, 0x23, 0x20, 0x6d, 0x6f,
+  0x64, 0x65, 0x6c, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x73, 0x2d, 0x67,
+  0x64, 0x6c, 0x0a, 0x23, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x67, 0x73, 0x2e, 0x67, 0x64, 0x6c, 0x0a, 0x6d, 0x6f,
+  0x64, 0x65, 0x6c, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x67, 0x74, 0x77, 0x09,
+  0x09, 0x09, 0x09, 0x09, 0x67, 0x74, 0x77, 0x0a, 0x23, 0x20, 0x6d, 0x6f,
+  0x64, 0x65, 0x6c, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x6f, 0x6d, 0x6c,
+  0x2b, 0x78, 0x6d, 0x6c, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6d, 0x74, 0x73, 0x09, 0x09, 0x09, 0x09, 0x09, 0x6d,
+  0x74, 0x73, 0x0a, 0x23, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x70, 0x61, 0x72, 0x61, 0x73, 0x6f, 0x6c, 0x69, 0x64,
+  0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x2e, 0x62, 0x69,
+  0x6e, 0x61, 0x72, 0x79, 0x0a, 0x23, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x70, 0x61, 0x72, 0x61, 0x73, 0x6f, 0x6c,
+  0x69, 0x64, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x2e,
+  0x74, 0x65, 0x78, 0x74, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x76, 0x74, 0x75, 0x09, 0x09, 0x09, 0x09, 0x09, 0x76,
+  0x74, 0x75, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x76, 0x72, 0x6d,
+  0x6c, 0x09, 0x09, 0x09, 0x09, 0x09, 0x77, 0x72, 0x6c, 0x20, 0x76, 0x72,
+  0x6d, 0x6c, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x78, 0x33, 0x64,
+  0x2b, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x09, 0x09, 0x09, 0x09, 0x78,
+  0x33, 0x64, 0x62, 0x20, 0x78, 0x33, 0x64, 0x62, 0x7a, 0x0a, 0x6d, 0x6f,
+  0x64, 0x65, 0x6c, 0x2f, 0x78, 0x33, 0x64, 0x2b, 0x76, 0x72, 0x6d, 0x6c,
+  0x09, 0x09, 0x09, 0x09, 0x09, 0x78, 0x33, 0x64, 0x76, 0x20, 0x78, 0x33,
+  0x64, 0x76, 0x7a, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x78, 0x33,
+  0x64, 0x2b, 0x78, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x09, 0x78, 0x33,
+  0x64, 0x20, 0x78, 0x33, 0x64, 0x7a, 0x0a, 0x23, 0x20, 0x6d, 0x75, 0x6c,
+  0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x2f, 0x61, 0x6c, 0x74, 0x65, 0x72,
+  0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x0a, 0x23, 0x20, 0x6d, 0x75, 0x6c,
+  0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x65,
+  0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x0a, 0x23, 0x20, 0x6d, 0x75, 0x6c,
+  0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x2f, 0x62, 0x79, 0x74, 0x65, 0x72,
+  0x61, 0x6e, 0x67, 0x65, 0x73, 0x0a, 0x23, 0x20, 0x6d, 0x75, 0x6c, 0x74,
+  0x69, 0x70, 0x61, 0x72, 0x74, 0x2f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74,
+  0x0a, 0x23, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61, 0x72, 0x74,
+  0x2f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x0a, 0x23,
+  0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x2f, 0x65,
+  0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x0a, 0x23, 0x20, 0x6d, 0x75, 0x6c,
+  0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x2f, 0x66, 0x6f, 0x72, 0x6d, 0x2d,
+  0x64, 0x61, 0x74, 0x61, 0x0a, 0x23, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69,
+  0x70, 0x61, 0x72, 0x74, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2d,
+  0x73, 0x65, 0x74, 0x0a, 0x23, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70,
+  0x61, 0x72, 0x74, 0x2f, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x0a, 0x23, 0x20,
+  0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x2f, 0x70, 0x61,
+  0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x0a, 0x23, 0x20, 0x6d, 0x75, 0x6c,
+  0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x74,
+  0x65, 0x64, 0x0a, 0x23, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61,
+  0x72, 0x74, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x0a, 0x23, 0x20,
+  0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61, 0x72, 0x74, 0x2f, 0x73, 0x69,
+  0x67, 0x6e, 0x65, 0x64, 0x0a, 0x23, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69,
+  0x70, 0x61, 0x72, 0x74, 0x2f, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2d, 0x6d,
+  0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78,
+  0x74, 0x2f, 0x31, 0x64, 0x2d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6c, 0x65,
+  0x61, 0x76, 0x65, 0x64, 0x2d, 0x70, 0x61, 0x72, 0x69, 0x74, 0x79, 0x66,
+  0x65, 0x63, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x61, 0x63, 0x68,
+  0x65, 0x2d, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x09, 0x09,
+  0x09, 0x09, 0x61, 0x70, 0x70, 0x63, 0x61, 0x63, 0x68, 0x65, 0x0a, 0x74,
+  0x65, 0x78, 0x74, 0x2f, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72,
+  0x09, 0x09, 0x09, 0x09, 0x09, 0x69, 0x63, 0x73, 0x20, 0x69, 0x66, 0x62,
+  0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, 0x09, 0x09, 0x09,
+  0x09, 0x09, 0x63, 0x73, 0x73, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63,
+  0x73, 0x76, 0x09, 0x09, 0x09, 0x09, 0x09, 0x63, 0x73, 0x76, 0x0a, 0x23,
+  0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74,
+  0x6f, 0x72, 0x79, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x64,
+  0x6e, 0x73, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x65, 0x63,
+  0x6d, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x0a, 0x23, 0x20, 0x74,
+  0x65, 0x78, 0x74, 0x2f, 0x65, 0x6e, 0x72, 0x69, 0x63, 0x68, 0x65, 0x64,
+  0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x65, 0x78, 0x61, 0x6d,
+  0x70, 0x6c, 0x65, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x66,
+  0x77, 0x64, 0x72, 0x65, 0x64, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x68,
+  0x74, 0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x09, 0x68, 0x74, 0x6d, 0x6c,
+  0x20, 0x68, 0x74, 0x6d, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f,
+  0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x0a, 0x74,
+  0x65, 0x78, 0x74, 0x2f, 0x6e, 0x33, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
+  0x6e, 0x33, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x70, 0x61,
+  0x72, 0x69, 0x74, 0x79, 0x66, 0x65, 0x63, 0x0a, 0x74, 0x65, 0x78, 0x74,
+  0x2f, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x09, 0x09, 0x09, 0x09, 0x09, 0x74,
+  0x78, 0x74, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x66,
+  0x20, 0x64, 0x65, 0x66, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6c, 0x6f,
+  0x67, 0x20, 0x69, 0x6e, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f,
+  0x70, 0x72, 0x73, 0x2e, 0x66, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x73, 0x74,
+  0x65, 0x69, 0x6e, 0x2e, 0x72, 0x73, 0x74, 0x0a, 0x74, 0x65, 0x78, 0x74,
+  0x2f, 0x70, 0x72, 0x73, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x74,
+  0x61, 0x67, 0x09, 0x09, 0x09, 0x09, 0x64, 0x73, 0x63, 0x0a, 0x23, 0x20,
+  0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x72, 0x61, 0x64,
+  0x69, 0x73, 0x79, 0x73, 0x2e, 0x6d, 0x73, 0x6d, 0x6c, 0x2d, 0x62, 0x61,
+  0x73, 0x69, 0x63, 0x2d, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x0a, 0x23,
+  0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x72, 0x65, 0x64, 0x0a, 0x23, 0x20,
+  0x74, 0x65, 0x78, 0x74, 0x2f, 0x72, 0x66, 0x63, 0x38, 0x32, 0x32, 0x2d,
+  0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x0a, 0x74, 0x65, 0x78, 0x74,
+  0x2f, 0x72, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x09, 0x09, 0x09,
+  0x09, 0x09, 0x72, 0x74, 0x78, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74,
+  0x2f, 0x72, 0x74, 0x66, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f,
+  0x72, 0x74, 0x70, 0x2d, 0x65, 0x6e, 0x63, 0x2d, 0x61, 0x65, 0x73, 0x63,
+  0x6d, 0x31, 0x32, 0x38, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f,
+  0x72, 0x74, 0x78, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x73, 0x67, 0x6d,
+  0x6c, 0x09, 0x09, 0x09, 0x09, 0x09, 0x73, 0x67, 0x6d, 0x6c, 0x20, 0x73,
+  0x67, 0x6d, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x74, 0x31,
+  0x34, 0x30, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x74, 0x61, 0x62, 0x2d,
+  0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2d, 0x76, 0x61,
+  0x6c, 0x75, 0x65, 0x73, 0x09, 0x09, 0x09, 0x74, 0x73, 0x76, 0x0a, 0x74,
+  0x65, 0x78, 0x74, 0x2f, 0x74, 0x72, 0x6f, 0x66, 0x66, 0x09, 0x09, 0x09,
+  0x09, 0x09, 0x74, 0x20, 0x74, 0x72, 0x20, 0x72, 0x6f, 0x66, 0x66, 0x20,
+  0x6d, 0x61, 0x6e, 0x20, 0x6d, 0x65, 0x20, 0x6d, 0x73, 0x0a, 0x74, 0x65,
+  0x78, 0x74, 0x2f, 0x74, 0x75, 0x72, 0x74, 0x6c, 0x65, 0x09, 0x09, 0x09,
+  0x09, 0x09, 0x74, 0x74, 0x6c, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74,
+  0x2f, 0x75, 0x6c, 0x70, 0x66, 0x65, 0x63, 0x0a, 0x74, 0x65, 0x78, 0x74,
+  0x2f, 0x75, 0x72, 0x69, 0x2d, 0x6c, 0x69, 0x73, 0x74, 0x09, 0x09, 0x09,
+  0x09, 0x09, 0x75, 0x72, 0x69, 0x20, 0x75, 0x72, 0x69, 0x73, 0x20, 0x75,
+  0x72, 0x6c, 0x73, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x63, 0x61,
+  0x72, 0x64, 0x09, 0x09, 0x09, 0x09, 0x09, 0x76, 0x63, 0x61, 0x72, 0x64,
+  0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x61, 0x62, 0x63, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x63, 0x75, 0x72, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x09, 0x63, 0x75,
+  0x72, 0x6c, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x63, 0x75, 0x72, 0x6c, 0x2e, 0x64, 0x63, 0x75, 0x72, 0x6c, 0x09, 0x09,
+  0x09, 0x09, 0x64, 0x63, 0x75, 0x72, 0x6c, 0x0a, 0x74, 0x65, 0x78, 0x74,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x75, 0x72, 0x6c, 0x2e, 0x73, 0x63,
+  0x75, 0x72, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x73, 0x63, 0x75, 0x72, 0x6c,
+  0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x63, 0x75,
+  0x72, 0x6c, 0x2e, 0x6d, 0x63, 0x75, 0x72, 0x6c, 0x09, 0x09, 0x09, 0x09,
+  0x6d, 0x63, 0x75, 0x72, 0x6c, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x6d, 0x63, 0x6c, 0x69, 0x65, 0x6e,
+  0x74, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x0a, 0x74, 0x65, 0x78, 0x74,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x76, 0x62, 0x2e, 0x73, 0x75, 0x62,
+  0x74, 0x69, 0x74, 0x6c, 0x65, 0x09, 0x09, 0x09, 0x09, 0x73, 0x75, 0x62,
+  0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x65, 0x73, 0x6d, 0x65, 0x72, 0x74, 0x65, 0x63, 0x2e, 0x74, 0x68, 0x65,
+  0x6d, 0x65, 0x2d, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f,
+  0x72, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66,
+  0x6c, 0x79, 0x09, 0x09, 0x09, 0x09, 0x09, 0x66, 0x6c, 0x79, 0x0a, 0x74,
+  0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x66, 0x6d, 0x69, 0x2e,
+  0x66, 0x6c, 0x65, 0x78, 0x73, 0x74, 0x6f, 0x72, 0x09, 0x09, 0x09, 0x09,
+  0x66, 0x6c, 0x78, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x76, 0x69, 0x7a, 0x09, 0x09, 0x09,
+  0x09, 0x67, 0x76, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x69, 0x6e, 0x33, 0x64, 0x2e, 0x33, 0x64, 0x6d, 0x6c, 0x09, 0x09,
+  0x09, 0x09, 0x33, 0x64, 0x6d, 0x6c, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x69, 0x6e, 0x33, 0x64, 0x2e, 0x73, 0x70, 0x6f,
+  0x74, 0x09, 0x09, 0x09, 0x09, 0x73, 0x70, 0x6f, 0x74, 0x0a, 0x23, 0x20,
+  0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x70, 0x74,
+  0x63, 0x2e, 0x6e, 0x65, 0x77, 0x73, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x74,
+  0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x70, 0x74, 0x63,
+  0x2e, 0x6e, 0x69, 0x74, 0x66, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6c, 0x61, 0x74, 0x65, 0x78, 0x2d, 0x7a,
+  0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x6f, 0x6c, 0x61, 0x2e, 0x72, 0x65, 0x66,
+  0x6c, 0x65, 0x78, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x70,
+  0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78,
+  0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x32, 0x70, 0x68,
+  0x6f, 0x6e, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x63, 0x65, 0x6e, 0x74,
+  0x65, 0x72, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x0a, 0x23,
+  0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x69,
+  0x2e, 0x75, 0x72, 0x69, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x75,
+  0x65, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73,
+  0x75, 0x6e, 0x2e, 0x6a, 0x32, 0x6d, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2d,
+  0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x09, 0x09,
+  0x6a, 0x61, 0x64, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x74, 0x65, 0x63, 0x68,
+  0x2e, 0x6c, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x74, 0x0a, 0x23, 0x20,
+  0x74, 0x65, 0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x61, 0x70,
+  0x2e, 0x73, 0x69, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x76,
+  0x6e, 0x64, 0x2e, 0x77, 0x61, 0x70, 0x2e, 0x73, 0x6c, 0x0a, 0x74, 0x65,
+  0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x61, 0x70, 0x2e, 0x77,
+  0x6d, 0x6c, 0x09, 0x09, 0x09, 0x09, 0x77, 0x6d, 0x6c, 0x0a, 0x74, 0x65,
+  0x78, 0x74, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x77, 0x61, 0x70, 0x2e, 0x77,
+  0x6d, 0x6c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x09, 0x09, 0x09, 0x09,
+  0x77, 0x6d, 0x6c, 0x73, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x78, 0x2d,
+  0x61, 0x73, 0x6d, 0x09, 0x09, 0x09, 0x09, 0x09, 0x73, 0x20, 0x61, 0x73,
+  0x6d, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x78, 0x2d, 0x63, 0x09, 0x09,
+  0x09, 0x09, 0x09, 0x63, 0x20, 0x63, 0x63, 0x20, 0x63, 0x78, 0x78, 0x20,
+  0x63, 0x70, 0x70, 0x20, 0x68, 0x20, 0x68, 0x68, 0x20, 0x64, 0x69, 0x63,
+  0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x78, 0x2d, 0x66, 0x6f, 0x72, 0x74,
+  0x72, 0x61, 0x6e, 0x09, 0x09, 0x09, 0x09, 0x09, 0x66, 0x20, 0x66, 0x6f,
+  0x72, 0x20, 0x66, 0x37, 0x37, 0x20, 0x66, 0x39, 0x30, 0x0a, 0x74, 0x65,
+  0x78, 0x74, 0x2f, 0x78, 0x2d, 0x6a, 0x61, 0x76, 0x61, 0x2d, 0x73, 0x6f,
+  0x75, 0x72, 0x63, 0x65, 0x09, 0x09, 0x09, 0x09, 0x6a, 0x61, 0x76, 0x61,
+  0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x78, 0x2d, 0x6f, 0x70, 0x6d, 0x6c,
+  0x09, 0x09, 0x09, 0x09, 0x09, 0x6f, 0x70, 0x6d, 0x6c, 0x0a, 0x74, 0x65,
+  0x78, 0x74, 0x2f, 0x78, 0x2d, 0x70, 0x61, 0x73, 0x63, 0x61, 0x6c, 0x09,
+  0x09, 0x09, 0x09, 0x09, 0x70, 0x20, 0x70, 0x61, 0x73, 0x0a, 0x74, 0x65,
+  0x78, 0x74, 0x2f, 0x78, 0x2d, 0x6e, 0x66, 0x6f, 0x09, 0x09, 0x09, 0x09,
+  0x09, 0x6e, 0x66, 0x6f, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x78, 0x2d,
+  0x73, 0x65, 0x74, 0x65, 0x78, 0x74, 0x09, 0x09, 0x09, 0x09, 0x09, 0x65,
+  0x74, 0x78, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x78, 0x2d, 0x73, 0x66,
+  0x76, 0x09, 0x09, 0x09, 0x09, 0x09, 0x73, 0x66, 0x76, 0x0a, 0x74, 0x65,
+  0x78, 0x74, 0x2f, 0x78, 0x2d, 0x75, 0x75, 0x65, 0x6e, 0x63, 0x6f, 0x64,
+  0x65, 0x09, 0x09, 0x09, 0x09, 0x09, 0x75, 0x75, 0x0a, 0x74, 0x65, 0x78,
+  0x74, 0x2f, 0x78, 0x2d, 0x76, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61,
+  0x72, 0x09, 0x09, 0x09, 0x09, 0x76, 0x63, 0x73, 0x0a, 0x74, 0x65, 0x78,
+  0x74, 0x2f, 0x78, 0x2d, 0x76, 0x63, 0x61, 0x72, 0x64, 0x09, 0x09, 0x09,
+  0x09, 0x09, 0x76, 0x63, 0x66, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74,
+  0x2f, 0x78, 0x6d, 0x6c, 0x0a, 0x23, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f,
+  0x78, 0x6d, 0x6c, 0x2d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
+  0x2d, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x2d, 0x65, 0x6e, 0x74, 0x69,
+  0x74, 0x79, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x31,
+  0x64, 0x2d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6c, 0x65, 0x61, 0x76, 0x65,
+  0x64, 0x2d, 0x70, 0x61, 0x72, 0x69, 0x74, 0x79, 0x66, 0x65, 0x63, 0x0a,
+  0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x33, 0x67, 0x70, 0x70, 0x09, 0x09,
+  0x09, 0x09, 0x09, 0x33, 0x67, 0x70, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64,
+  0x65, 0x6f, 0x2f, 0x33, 0x67, 0x70, 0x70, 0x2d, 0x74, 0x74, 0x0a, 0x76,
+  0x69, 0x64, 0x65, 0x6f, 0x2f, 0x33, 0x67, 0x70, 0x70, 0x32, 0x09, 0x09,
+  0x09, 0x09, 0x09, 0x33, 0x67, 0x32, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64,
+  0x65, 0x6f, 0x2f, 0x62, 0x6d, 0x70, 0x65, 0x67, 0x0a, 0x23, 0x20, 0x76,
+  0x69, 0x64, 0x65, 0x6f, 0x2f, 0x62, 0x74, 0x36, 0x35, 0x36, 0x0a, 0x23,
+  0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x63, 0x65, 0x6c, 0x62, 0x0a,
+  0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x64, 0x76, 0x0a, 0x23,
+  0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x70,
+  0x6c, 0x65, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x68, 0x32, 0x36,
+  0x31, 0x09, 0x09, 0x09, 0x09, 0x09, 0x68, 0x32, 0x36, 0x31, 0x0a, 0x76,
+  0x69, 0x64, 0x65, 0x6f, 0x2f, 0x68, 0x32, 0x36, 0x33, 0x09, 0x09, 0x09,
+  0x09, 0x09, 0x68, 0x32, 0x36, 0x33, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64,
+  0x65, 0x6f, 0x2f, 0x68, 0x32, 0x36, 0x33, 0x2d, 0x31, 0x39, 0x39, 0x38,
+  0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x68, 0x32, 0x36,
+  0x33, 0x2d, 0x32, 0x30, 0x30, 0x30, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f,
+  0x2f, 0x68, 0x32, 0x36, 0x34, 0x09, 0x09, 0x09, 0x09, 0x09, 0x68, 0x32,
+  0x36, 0x34, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x68,
+  0x32, 0x36, 0x34, 0x2d, 0x72, 0x63, 0x64, 0x6f, 0x0a, 0x23, 0x20, 0x76,
+  0x69, 0x64, 0x65, 0x6f, 0x2f, 0x68, 0x32, 0x36, 0x34, 0x2d, 0x73, 0x76,
+  0x63, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x6a, 0x70, 0x65, 0x67,
+  0x09, 0x09, 0x09, 0x09, 0x09, 0x6a, 0x70, 0x67, 0x76, 0x0a, 0x23, 0x20,
+  0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x6a, 0x70, 0x65, 0x67, 0x32, 0x30,
+  0x30, 0x30, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x6a, 0x70, 0x6d,
+  0x09, 0x09, 0x09, 0x09, 0x09, 0x6a, 0x70, 0x6d, 0x20, 0x6a, 0x70, 0x67,
+  0x6d, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x6d, 0x6a, 0x32, 0x09,
+  0x09, 0x09, 0x09, 0x09, 0x6d, 0x6a, 0x32, 0x20, 0x6d, 0x6a, 0x70, 0x32,
+  0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x6d, 0x70, 0x31,
+  0x73, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x6d, 0x70,
+  0x32, 0x70, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x6d,
+  0x70, 0x32, 0x74, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x6d, 0x70,
+  0x34, 0x09, 0x09, 0x09, 0x09, 0x09, 0x6d, 0x70, 0x34, 0x20, 0x6d, 0x70,
+  0x34, 0x76, 0x20, 0x6d, 0x70, 0x67, 0x34, 0x0a, 0x23, 0x20, 0x76, 0x69,
+  0x64, 0x65, 0x6f, 0x2f, 0x6d, 0x70, 0x34, 0x76, 0x2d, 0x65, 0x73, 0x0a,
+  0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x6d, 0x70, 0x65, 0x67, 0x09, 0x09,
+  0x09, 0x09, 0x09, 0x6d, 0x70, 0x65, 0x67, 0x20, 0x6d, 0x70, 0x67, 0x20,
+  0x6d, 0x70, 0x65, 0x20, 0x6d, 0x31, 0x76, 0x20, 0x6d, 0x32, 0x76, 0x0a,
+  0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x6d, 0x70, 0x65, 0x67,
+  0x34, 0x2d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x0a, 0x23, 0x20,
+  0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x6d, 0x70, 0x76, 0x0a, 0x23, 0x20,
+  0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x6e, 0x76, 0x0a, 0x76, 0x69, 0x64,
+  0x65, 0x6f, 0x2f, 0x6f, 0x67, 0x67, 0x09, 0x09, 0x09, 0x09, 0x09, 0x6f,
+  0x67, 0x76, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x70,
+  0x61, 0x72, 0x69, 0x74, 0x79, 0x66, 0x65, 0x63, 0x0a, 0x23, 0x20, 0x76,
+  0x69, 0x64, 0x65, 0x6f, 0x2f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72,
+  0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x71, 0x75, 0x69, 0x63, 0x6b,
+  0x74, 0x69, 0x6d, 0x65, 0x09, 0x09, 0x09, 0x09, 0x09, 0x71, 0x74, 0x20,
+  0x6d, 0x6f, 0x76, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f,
+  0x72, 0x61, 0x77, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f,
+  0x72, 0x74, 0x70, 0x2d, 0x65, 0x6e, 0x63, 0x2d, 0x61, 0x65, 0x73, 0x63,
+  0x6d, 0x31, 0x32, 0x38, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f,
+  0x2f, 0x72, 0x74, 0x78, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f,
+  0x2f, 0x73, 0x6d, 0x70, 0x74, 0x65, 0x32, 0x39, 0x32, 0x6d, 0x0a, 0x23,
+  0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x75, 0x6c, 0x70, 0x66, 0x65,
+  0x63, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x63,
+  0x31, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x63, 0x63, 0x74, 0x76, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x65, 0x63, 0x65, 0x2e, 0x68, 0x64,
+  0x09, 0x09, 0x09, 0x09, 0x75, 0x76, 0x68, 0x20, 0x75, 0x76, 0x76, 0x68,
+  0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64,
+  0x65, 0x63, 0x65, 0x2e, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x09, 0x09,
+  0x09, 0x09, 0x75, 0x76, 0x6d, 0x20, 0x75, 0x76, 0x76, 0x6d, 0x0a, 0x23,
+  0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64,
+  0x65, 0x63, 0x65, 0x2e, 0x6d, 0x70, 0x34, 0x0a, 0x76, 0x69, 0x64, 0x65,
+  0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x65, 0x63, 0x65, 0x2e, 0x70,
+  0x64, 0x09, 0x09, 0x09, 0x09, 0x75, 0x76, 0x70, 0x20, 0x75, 0x76, 0x76,
+  0x70, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x64, 0x65, 0x63, 0x65, 0x2e, 0x73, 0x64, 0x09, 0x09, 0x09, 0x09, 0x75,
+  0x76, 0x73, 0x20, 0x75, 0x76, 0x76, 0x73, 0x0a, 0x76, 0x69, 0x64, 0x65,
+  0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x65, 0x63, 0x65, 0x2e, 0x76,
+  0x69, 0x64, 0x65, 0x6f, 0x09, 0x09, 0x09, 0x09, 0x75, 0x76, 0x76, 0x20,
+  0x75, 0x76, 0x76, 0x76, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x76,
+  0x2e, 0x6d, 0x70, 0x65, 0x67, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65,
+  0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74,
+  0x76, 0x2e, 0x6d, 0x70, 0x65, 0x67, 0x2d, 0x74, 0x74, 0x73, 0x0a, 0x23,
+  0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64,
+  0x6c, 0x6e, 0x61, 0x2e, 0x6d, 0x70, 0x65, 0x67, 0x2d, 0x74, 0x74, 0x73,
+  0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x64,
+  0x76, 0x62, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x09, 0x09, 0x09, 0x09, 0x64,
+  0x76, 0x62, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x66, 0x76, 0x74, 0x09, 0x09, 0x09, 0x09, 0x09, 0x66, 0x76, 0x74,
+  0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x68, 0x6e, 0x73, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x0a, 0x23,
+  0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69,
+  0x70, 0x74, 0x76, 0x66, 0x6f, 0x72, 0x75, 0x6d, 0x2e, 0x31, 0x64, 0x70,
+  0x61, 0x72, 0x69, 0x74, 0x79, 0x66, 0x65, 0x63, 0x2d, 0x31, 0x30, 0x31,
+  0x30, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x69, 0x70, 0x74, 0x76, 0x66, 0x6f, 0x72, 0x75, 0x6d, 0x2e,
+  0x31, 0x64, 0x70, 0x61, 0x72, 0x69, 0x74, 0x79, 0x66, 0x65, 0x63, 0x2d,
+  0x32, 0x30, 0x30, 0x35, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x70, 0x74, 0x76, 0x66, 0x6f, 0x72,
+  0x75, 0x6d, 0x2e, 0x32, 0x64, 0x70, 0x61, 0x72, 0x69, 0x74, 0x79, 0x66,
+  0x65, 0x63, 0x2d, 0x31, 0x30, 0x31, 0x30, 0x0a, 0x23, 0x20, 0x76, 0x69,
+  0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69, 0x70, 0x74, 0x76,
+  0x66, 0x6f, 0x72, 0x75, 0x6d, 0x2e, 0x32, 0x64, 0x70, 0x61, 0x72, 0x69,
+  0x74, 0x79, 0x66, 0x65, 0x63, 0x2d, 0x32, 0x30, 0x30, 0x35, 0x0a, 0x23,
+  0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x69,
+  0x70, 0x74, 0x76, 0x66, 0x6f, 0x72, 0x75, 0x6d, 0x2e, 0x74, 0x74, 0x73,
+  0x61, 0x76, 0x63, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x69, 0x70, 0x74, 0x76, 0x66, 0x6f, 0x72, 0x75,
+  0x6d, 0x2e, 0x74, 0x74, 0x73, 0x6d, 0x70, 0x65, 0x67, 0x32, 0x0a, 0x23,
+  0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d,
+  0x6f, 0x74, 0x6f, 0x72, 0x6f, 0x6c, 0x61, 0x2e, 0x76, 0x69, 0x64, 0x65,
+  0x6f, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e,
+  0x64, 0x2e, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x6f, 0x6c, 0x61, 0x2e, 0x76,
+  0x69, 0x64, 0x65, 0x6f, 0x70, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f,
+  0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x70, 0x65, 0x67, 0x75, 0x72, 0x6c, 0x09,
+  0x09, 0x09, 0x09, 0x6d, 0x78, 0x75, 0x20, 0x6d, 0x34, 0x75, 0x0a, 0x76,
+  0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6d, 0x73, 0x2d,
+  0x70, 0x6c, 0x61, 0x79, 0x72, 0x65, 0x61, 0x64, 0x79, 0x2e, 0x6d, 0x65,
+  0x64, 0x69, 0x61, 0x2e, 0x70, 0x79, 0x76, 0x09, 0x09, 0x70, 0x79, 0x76,
+  0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64,
+  0x2e, 0x6e, 0x6f, 0x6b, 0x69, 0x61, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72,
+  0x6c, 0x65, 0x61, 0x76, 0x65, 0x64, 0x2d, 0x6d, 0x75, 0x6c, 0x74, 0x69,
+  0x6d, 0x65, 0x64, 0x69, 0x61, 0x0a, 0x23, 0x20, 0x76, 0x69, 0x64, 0x65,
+  0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6e, 0x6f, 0x6b, 0x69, 0x61, 0x2e,
+  0x76, 0x69, 0x64, 0x65, 0x6f, 0x76, 0x6f, 0x69, 0x70, 0x0a, 0x23, 0x20,
+  0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x6f, 0x62,
+  0x6a, 0x65, 0x63, 0x74, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x0a, 0x23, 0x20,
+  0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73, 0x65,
+  0x61, 0x6c, 0x65, 0x64, 0x2e, 0x6d, 0x70, 0x65, 0x67, 0x31, 0x0a, 0x23,
+  0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73,
+  0x65, 0x61, 0x6c, 0x65, 0x64, 0x2e, 0x6d, 0x70, 0x65, 0x67, 0x34, 0x0a,
+  0x23, 0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e,
+  0x73, 0x65, 0x61, 0x6c, 0x65, 0x64, 0x2e, 0x73, 0x77, 0x66, 0x0a, 0x23,
+  0x20, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x73,
+  0x65, 0x61, 0x6c, 0x65, 0x64, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x2e, 0x73,
+  0x6f, 0x66, 0x74, 0x73, 0x65, 0x61, 0x6c, 0x2e, 0x6d, 0x6f, 0x76, 0x0a,
+  0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x75, 0x76,
+  0x76, 0x75, 0x2e, 0x6d, 0x70, 0x34, 0x09, 0x09, 0x09, 0x09, 0x75, 0x76,
+  0x75, 0x20, 0x75, 0x76, 0x76, 0x75, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f,
+  0x2f, 0x76, 0x6e, 0x64, 0x2e, 0x76, 0x69, 0x76, 0x6f, 0x09, 0x09, 0x09,
+  0x09, 0x09, 0x76, 0x69, 0x76, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f,
+  0x77, 0x65, 0x62, 0x6d, 0x09, 0x09, 0x09, 0x09, 0x09, 0x77, 0x65, 0x62,
+  0x6d, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x78, 0x2d, 0x66, 0x34,
+  0x76, 0x09, 0x09, 0x09, 0x09, 0x09, 0x66, 0x34, 0x76, 0x0a, 0x76, 0x69,
+  0x64, 0x65, 0x6f, 0x2f, 0x78, 0x2d, 0x66, 0x6c, 0x69, 0x09, 0x09, 0x09,
+  0x09, 0x09, 0x66, 0x6c, 0x69, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f,
+  0x78, 0x2d, 0x66, 0x6c, 0x76, 0x09, 0x09, 0x09, 0x09, 0x09, 0x66, 0x6c,
+  0x76, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x78, 0x2d, 0x6d, 0x34,
+  0x76, 0x09, 0x09, 0x09, 0x09, 0x09, 0x6d, 0x34, 0x76, 0x0a, 0x76, 0x69,
+  0x64, 0x65, 0x6f, 0x2f, 0x78, 0x2d, 0x6d, 0x61, 0x74, 0x72, 0x6f, 0x73,
+  0x6b, 0x61, 0x09, 0x09, 0x09, 0x09, 0x6d, 0x6b, 0x76, 0x20, 0x6d, 0x6b,
+  0x33, 0x64, 0x20, 0x6d, 0x6b, 0x73, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f,
+  0x2f, 0x78, 0x2d, 0x6d, 0x6e, 0x67, 0x09, 0x09, 0x09, 0x09, 0x09, 0x6d,
+  0x6e, 0x67, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x78, 0x2d, 0x6d,
+  0x73, 0x2d, 0x61, 0x73, 0x66, 0x09, 0x09, 0x09, 0x09, 0x09, 0x61, 0x73,
+  0x66, 0x20, 0x61, 0x73, 0x78, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f,
+  0x78, 0x2d, 0x6d, 0x73, 0x2d, 0x76, 0x6f, 0x62, 0x09, 0x09, 0x09, 0x09,
+  0x09, 0x76, 0x6f, 0x62, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x78,
+  0x2d, 0x6d, 0x73, 0x2d, 0x77, 0x6d, 0x09, 0x09, 0x09, 0x09, 0x09, 0x77,
+  0x6d, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x78, 0x2d, 0x6d, 0x73,
+  0x2d, 0x77, 0x6d, 0x76, 0x09, 0x09, 0x09, 0x09, 0x09, 0x77, 0x6d, 0x76,
+  0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x2d,
+  0x77, 0x6d, 0x78, 0x09, 0x09, 0x09, 0x09, 0x09, 0x77, 0x6d, 0x78, 0x0a,
+  0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x2d, 0x77,
+  0x76, 0x78, 0x09, 0x09, 0x09, 0x09, 0x09, 0x77, 0x76, 0x78, 0x0a, 0x76,
+  0x69, 0x64, 0x65, 0x6f, 0x2f, 0x78, 0x2d, 0x6d, 0x73, 0x76, 0x69, 0x64,
+  0x65, 0x6f, 0x09, 0x09, 0x09, 0x09, 0x09, 0x61, 0x76, 0x69, 0x0a, 0x76,
+  0x69, 0x64, 0x65, 0x6f, 0x2f, 0x78, 0x2d, 0x73, 0x67, 0x69, 0x2d, 0x6d,
+  0x6f, 0x76, 0x69, 0x65, 0x09, 0x09, 0x09, 0x09, 0x6d, 0x6f, 0x76, 0x69,
+  0x65, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x78, 0x2d, 0x73, 0x6d,
+  0x76, 0x09, 0x09, 0x09, 0x09, 0x09, 0x73, 0x6d, 0x76, 0x0a, 0x78, 0x2d,
+  0x63, 0x6f, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x2f, 0x78,
+  0x2d, 0x63, 0x6f, 0x6f, 0x6c, 0x74, 0x61, 0x6c, 0x6b, 0x09, 0x09, 0x09,
+  0x09, 0x69, 0x63, 0x65, 0x0a
+};
+static unsigned int mime_types_len = 53009;
diff --git a/tg-engine-service/mtprotocol/mtproto-client.c b/tg-engine-service/mtprotocol/mtproto-client.c
new file mode 100644 (file)
index 0000000..a919951
--- /dev/null
@@ -0,0 +1,1483 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or(at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Nikolay Durov, Andrey Lopatin 2012-2013
+              Vitaly Valtman 2013-2015
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#define _FILE_OFFSET_BITS 64
+
+#include <assert.h>
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <signal.h>
+#include <unistd.h>
+#include <fcntl.h>
+#if defined(__FreeBSD__) || defined(__OpenBSD__)
+#include <endian.h>
+#endif
+#include <sys/types.h>
+#include <netdb.h>
+#include <openssl/rand.h>
+#include <openssl/rsa.h>
+#include <openssl/pem.h>
+#include <openssl/sha.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <netinet/tcp.h>
+#include <poll.h>
+#include "queries.h"
+#include "tgl-structures.h"
+#include "tgl-binlog.h"
+#include "auto.h"
+#include "tgl.h"
+#include "mtproto-client.h"
+#include "tools.h"
+#include "tree.h"
+#include "updates.h"
+#include "mtproto-utils.h"
+#include "auto.h"
+
+#if defined(__FreeBSD__)
+#define __builtin_bswap32(x) bswap32(x)
+#endif
+
+#if defined(__OpenBSD__)
+#define __builtin_bswap32(x) __swap32gen(x)
+#endif
+
+#define sha1 SHA1
+
+#include "mtproto-common.h"
+
+#define MAX_NET_RES (1L << 16)
+
+static long long generate_next_msg_id(struct tgl_state *TLS, struct tgl_dc *DC, struct tgl_session *S);
+static double get_server_time(struct tgl_dc *DC);
+
+#if !defined(HAVE___BUILTIN_BSWAP32) && !defined(__FreeBSD__) && !defined(__OpenBSD__)
+static inline unsigned __builtin_bswap32(unsigned x) {
+       return((x << 24) & 0xff000000 ) |
+                       ((x << 8) & 0x00ff0000 ) |
+                       ((x >> 8) & 0x0000ff00 ) |
+                       ((x >> 24) & 0x000000ff );
+}
+#endif
+
+// for statistic only
+static int total_packets_sent;
+static long long total_data_sent;
+static int rpc_execute(struct tgl_state *TLS, struct connection *c, int op, int len);
+static int rpc_becomes_ready(struct tgl_state *TLS, struct connection *c);
+static int rpc_close(struct tgl_state *TLS, struct connection *c);
+
+static double get_utime(int clock_id)
+{
+       struct timespec T;
+       tgl_my_clock_gettime(clock_id, &T);
+       return T.tv_sec +(double) T.tv_nsec * 1e-9;
+}
+#define MAX_RESPONSE_SIZE (1L << 24)
+
+static RSA *rsa_load_public_key(struct tgl_state *TLS, const char *public_key_name)
+{
+       FILE *f = fopen(public_key_name, "r");
+       if (f == NULL) {
+               vlogprintf(E_WARNING, "Couldn't open public key file: %s\n", public_key_name);
+               return NULL;
+       }
+       RSA *res = PEM_read_RSAPublicKey(f, NULL, NULL, NULL);
+       fclose(f);
+       if (res == NULL) {
+               vlogprintf(E_WARNING, "PEM_read_RSAPublicKey returns NULL.\n");
+               return NULL;
+       }
+       vlogprintf(E_NOTICE, "public key '%s' loaded successfully\n", public_key_name);
+       return res;
+}
+
+/*
+ *
+ *        UNAUTHORIZED(DH KEY EXCHANGE) PROTOCOL PART
+ *
+ */
+
+#define ENCRYPT_BUFFER_INTS        16384
+static int encrypt_buffer[ENCRYPT_BUFFER_INTS];
+
+#define DECRYPT_BUFFER_INTS        16384
+static int decrypt_buffer[ENCRYPT_BUFFER_INTS];
+
+static int encrypt_packet_buffer(struct tgl_state *TLS, struct tgl_dc *DC)
+{
+       RSA *key = TLS->rsa_key_loaded[DC->rsa_key_idx];
+       return tgl_pad_rsa_encrypt(TLS,(char *) packet_buffer,(packet_ptr - packet_buffer) * 4,(char *) encrypt_buffer, ENCRYPT_BUFFER_INTS * 4, key->n, key->e);
+}
+
+static int encrypt_packet_buffer_aes_unauth(const char server_nonce[16], const char hidden_client_nonce[32])
+{
+       tgl_init_aes_unauth(server_nonce, hidden_client_nonce, AES_ENCRYPT);
+       return tgl_pad_aes_encrypt((char *) packet_buffer,(packet_ptr - packet_buffer) * 4,(char *) encrypt_buffer, ENCRYPT_BUFFER_INTS * 4);
+}
+
+// 
+// Used in unauthorized part of protocol
+// 
+static int rpc_send_packet(struct tgl_state *TLS, struct connection *c)
+{
+       static struct {
+               long long auth_key_id;
+               long long out_msg_id;
+               int msg_len;
+       } unenc_msg_header;
+
+       int len =(packet_ptr - packet_buffer) * 4;
+       TLS->net_methods->incr_out_packet_num(c);
+
+       struct tgl_dc *DC = TLS->net_methods->get_dc(c);
+       struct tgl_session *S = TLS->net_methods->get_session(c);
+
+       unenc_msg_header.out_msg_id = generate_next_msg_id(TLS, DC, S);
+       unenc_msg_header.msg_len = len;
+
+       int total_len = len + 20;
+       assert(total_len > 0 && !(total_len & 0xfc000003));
+       total_len >>= 2;
+       vlogprintf(E_DEBUG, "writing packet: total_len = %d, len = %d\n", total_len, len);
+       if (total_len < 0x7f) {
+               assert(TLS->net_methods->write_out(c, &total_len, 1) == 1);
+       } else {
+               total_len =(total_len << 8) | 0x7f;
+               assert(TLS->net_methods->write_out(c, &total_len, 4) == 4);
+       }
+       TLS->net_methods->write_out(c, &unenc_msg_header, 20);
+       TLS->net_methods->write_out(c, packet_buffer, len);
+       TLS->net_methods->flush_out(c);
+
+       total_packets_sent ++;
+       total_data_sent += total_len;
+       return 1;
+}
+
+static int rpc_send_message(struct tgl_state *TLS, struct connection *c, void *data, int len)
+{
+       assert(len > 0 && !(len & 0xfc000003));
+       int total_len = len >> 2;
+       if (total_len < 0x7f) {
+               assert(TLS->net_methods->write_out(c, &total_len, 1) == 1);
+       } else {
+               total_len =(total_len << 8) | 0x7f;
+               assert(TLS->net_methods->write_out(c, &total_len, 4) == 4);
+       }
+
+       TLS->net_methods->incr_out_packet_num(c);
+       assert(TLS->net_methods->write_out(c, data, len) == len);
+       TLS->net_methods->flush_out(c);
+
+       total_packets_sent ++;
+       total_data_sent += total_len;
+       return 1;
+}
+
+//
+// State machine. See description at 
+// https://core.telegram.org/mtproto/auth_key
+//
+
+static int check_unauthorized_header(struct tgl_state *TLS)
+{
+       long long auth_key_id = fetch_long();
+       if (auth_key_id) {
+               vlogprintf(E_ERROR, "ERROR: auth_key_id should be NULL\n");
+               return -1;
+       }
+       fetch_long(); // msg_id
+       int len = fetch_int();
+       if (len != 4 *(in_end - in_ptr)) {
+               vlogprintf(E_ERROR, "ERROR: length mismatch\n");
+               return -1;
+       }
+       return 0;
+}
+
+/* {{{ REQ_PQ */
+// req_pq#60469778 nonce:int128 = ResPQ
+static int send_req_pq_packet(struct tgl_state *TLS, struct connection *c)
+{
+       struct tgl_dc *DC = TLS->net_methods->get_dc(c);
+       assert(DC->state == st_init);
+
+       tglt_secure_random(DC->nonce, 16);
+       clear_packet();
+       out_int(CODE_req_pq);
+       out_ints((int *)DC->nonce, 4);
+       rpc_send_packet(TLS, c);
+
+       DC->state = st_reqpq_sent;
+       return 1;
+}
+
+// req_pq#60469778 nonce:int128 = ResPQ
+static int send_req_pq_temp_packet(struct tgl_state *TLS, struct connection *c)
+{
+       struct tgl_dc *DC = TLS->net_methods->get_dc(c);
+       assert(DC->state == st_authorized);
+
+       tglt_secure_random(DC->nonce, 16);
+       clear_packet();
+       out_int(CODE_req_pq);
+       out_ints((int *)DC->nonce, 4);
+       rpc_send_packet(TLS, c);
+
+       DC->state = st_reqpq_sent_temp;
+       return 1;
+}
+/* }}} */
+
+/* {{{ REQ DH */
+// req_DH_params#d712e4be nonce:int128 server_nonce:int128 p:string q:string public_key_fingerprint:long encrypted_data:string = Server_DH_Params;
+// p_q_inner_data#83c95aec pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 = P_Q_inner_data;
+// p_q_inner_data_temp#3c6a84d4 pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 expires_in:int = P_Q_inner_data;
+static void send_req_dh_packet(struct tgl_state *TLS, struct connection *c, BIGNUM *pq, int temp_key)
+{
+       struct tgl_dc *DC = TLS->net_methods->get_dc(c);
+
+       BIGNUM *p = BN_new();
+       BIGNUM *q = BN_new();
+       assert(bn_factorize(pq, p, q) >= 0);
+
+       clear_packet();
+       packet_ptr += 5;
+       out_int(temp_key ? CODE_p_q_inner_data_temp : CODE_p_q_inner_data);
+
+       out_bignum(pq);
+       out_bignum(p);
+       out_bignum(q);
+
+       out_ints((int *) DC->nonce, 4);
+       out_ints((int *) DC->server_nonce, 4);
+       tglt_secure_random(DC->new_nonce, 32);
+       out_ints((int *) DC->new_nonce, 8);
+       if (temp_key) {
+               out_int(TLS->temp_key_expire_time);
+       }
+       sha1((unsigned char *)(packet_buffer + 5),(packet_ptr - packet_buffer - 5) * 4,(unsigned char *) packet_buffer);
+
+       int l = encrypt_packet_buffer(TLS, DC);
+
+       clear_packet();
+       out_int(CODE_req_DH_params);
+       out_ints((int *) DC->nonce, 4);
+       out_ints((int *) DC->server_nonce, 4);
+       out_bignum(p);
+       out_bignum(q);
+
+       out_long(TLS->rsa_key_fingerprint[DC->rsa_key_idx]);
+       out_cstring((char *) encrypt_buffer, l);
+
+       BN_free(p);
+       BN_free(q);
+       DC->state = temp_key ? st_reqdh_sent_temp : st_reqdh_sent;
+       rpc_send_packet(TLS, c);
+}
+/* }}} */
+
+/* {{{ SEND DH PARAMS */
+// set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer;
+// client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data
+
+static void send_dh_params(struct tgl_state *TLS, struct connection *c, BIGNUM *dh_prime, BIGNUM *g_a, int g, int temp_key)
+{
+       struct tgl_dc *DC = TLS->net_methods->get_dc(c);
+
+       clear_packet();
+       packet_ptr += 5;
+       out_int(CODE_client_DH_inner_data);
+       out_ints((int *) DC->nonce, 4);
+       out_ints((int *) DC->server_nonce, 4);
+       out_long(0);
+
+       BIGNUM *dh_g = BN_new();
+       ensure(BN_set_word(dh_g, g));
+
+       static unsigned char s_power[256];
+       tglt_secure_random(s_power, 256);
+       BIGNUM *dh_power = BN_bin2bn((unsigned char *)s_power, 256, 0);
+       ensure_ptr(dh_power);
+
+       BIGNUM *y = BN_new();
+       ensure_ptr(y);
+       ensure(BN_mod_exp(y, dh_g, dh_power, dh_prime, TLS->BN_ctx));
+       out_bignum(y);
+       BN_free(y);
+
+       BIGNUM *auth_key_num = BN_new();
+       ensure(BN_mod_exp(auth_key_num, g_a, dh_power, dh_prime, TLS->BN_ctx));
+       int l = BN_num_bytes(auth_key_num);
+       assert(l >= 250 && l <= 256);
+       assert(BN_bn2bin(auth_key_num,(unsigned char *)(temp_key ? DC->temp_auth_key : DC->auth_key)));
+       if (l < 256) {
+               char *key = temp_key ? DC->temp_auth_key : DC->auth_key;
+               memmove(key + 256 - l, key, l);
+               memset(key, 0, 256 - l);
+       }
+
+       BN_free(dh_power);
+       BN_free(auth_key_num);
+       BN_free(dh_g);
+
+       sha1((unsigned char *)(packet_buffer + 5),(packet_ptr - packet_buffer - 5) * 4,(unsigned char *) packet_buffer);
+
+       l = encrypt_packet_buffer_aes_unauth(DC->server_nonce, DC->new_nonce);
+
+       clear_packet();
+       out_int(CODE_set_client_DH_params);
+       out_ints((int *) DC->nonce, 4);
+       out_ints((int *) DC->server_nonce, 4);
+       out_cstring((char *) encrypt_buffer, l);
+
+       DC->state = temp_key ? st_client_dh_sent_temp : st_client_dh_sent;;
+       rpc_send_packet(TLS, c);
+}
+/* }}} */
+
+/* {{{ RECV RESPQ */
+// resPQ#05162463 nonce:int128 server_nonce:int128 pq:string server_public_key_fingerprints:Vector long = ResPQ
+static int process_respq_answer(struct tgl_state *TLS, struct connection *c, char *packet, int len, int temp_key)
+{
+       assert(!(len & 3));
+       in_ptr =(int *)packet;
+       in_end = in_ptr +(len / 4);
+       if (check_unauthorized_header(TLS) < 0) {
+               return -1;
+       }
+
+       int *in_save = in_ptr;
+       if (skip_type_any(TYPE_TO_PARAM(res_p_q)) < 0 || in_ptr != in_end) {
+               vlogprintf(E_ERROR, "can not parse req_p_q answer\n");
+               return -1;
+       }
+       in_ptr = in_save;
+
+       struct tgl_dc *DC = TLS->net_methods->get_dc(c);
+
+       assert(fetch_int() == CODE_res_p_q);
+
+       static int tmp[4];
+       fetch_ints(tmp, 4);
+       if (memcmp(tmp, DC->nonce, 16)) {
+               vlogprintf(E_ERROR, "nonce mismatch\n");
+               return -1;
+       }
+       fetch_ints(DC->server_nonce, 4);
+
+       BIGNUM *pq = BN_new();
+       assert(fetch_bignum(pq) >= 0);
+
+       assert(fetch_int()  == CODE_vector);
+       int fingerprints_num = fetch_int();
+       assert(fingerprints_num >= 0);
+       DC->rsa_key_idx = -1;
+
+       int i;
+       for (i = 0; i < fingerprints_num; i++) {
+               int j;
+               long long fprint = fetch_long();
+               for (j = 0; j < TLS->rsa_key_num; j++) {
+                       if (TLS->rsa_key_loaded[j]) {
+                               if (fprint == TLS->rsa_key_fingerprint[j]) {
+                                       DC->rsa_key_idx = j;
+                                       break;
+                               }
+                       }
+               }
+       }
+       assert(in_ptr == in_end);
+       if (DC->rsa_key_idx == -1) {
+               vlogprintf(E_ERROR, "fatal: don't have any matching keys\n");
+               return -1;
+       }
+
+       send_req_dh_packet(TLS, c, pq, temp_key);
+
+       BN_free(pq);
+       return 1;
+}
+
+
+
+// server_DH_params_fail#79cb045d nonce:int128 server_nonce:int128 new_nonce_hash:int128 = Server_DH_Params;
+// server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params;
+// server_DH_inner_data#b5890dba nonce:int128 server_nonce:int128 g:int dh_prime:string g_a:string server_time:int = Server_DH_inner_data;
+static int process_dh_answer(struct tgl_state *TLS, struct connection *c, char *packet, int len, int temp_key)
+{
+       assert(!(len & 3));
+       in_ptr =(int *)packet;
+       in_end = in_ptr +(len / 4);
+       if (check_unauthorized_header(TLS) < 0)
+               return -1;
+
+       int *in_save = in_ptr;
+       if (skip_type_any(TYPE_TO_PARAM(server_d_h_params)) < 0 || in_ptr != in_end) {
+               vlogprintf(E_ERROR, "can not parse server_DH_params answer\n");
+               return -1;
+       }
+       in_ptr = in_save;
+
+       struct tgl_dc *DC = TLS->net_methods->get_dc(c);
+
+       unsigned op = fetch_int();
+       assert(op == CODE_server__d_h_params_ok || op == CODE_server__d_h_params_fail);
+
+       int tmp[4];
+       fetch_ints(tmp, 4);
+       if (memcmp(tmp, DC->nonce, 16)) {
+               vlogprintf(E_ERROR, "nonce mismatch\n");
+               return -1;
+       }
+       assert(!memcmp(tmp, DC->nonce, 16));
+       fetch_ints(tmp, 4);
+       if (memcmp(tmp, DC->server_nonce, 16)) {
+               vlogprintf(E_ERROR, "nonce mismatch\n");
+               return -1;
+       }
+       assert(!memcmp(tmp, DC->server_nonce, 16));
+
+       if (op == CODE_server__d_h_params_fail) {
+               vlogprintf(E_ERROR, "DH params fail\n");
+               return -1;
+       }
+
+       tgl_init_aes_unauth(DC->server_nonce, DC->new_nonce, AES_DECRYPT);
+
+       int l = prefetch_strlen();
+       assert(l >= 0);
+       if (!l) {
+               vlogprintf(E_ERROR, "non-empty encrypted part expected\n");
+               return -1;
+       }
+       l = tgl_pad_aes_decrypt(fetch_str(l), l,(char *) decrypt_buffer, DECRYPT_BUFFER_INTS * 4 - 16);
+       assert(in_ptr == in_end);
+
+       in_ptr = decrypt_buffer + 5;
+       in_end = decrypt_buffer +(l >> 2);
+       if (skip_type_any(TYPE_TO_PARAM(server_d_h_inner_data)) < 0) {
+               vlogprintf(E_ERROR, "can not parse server_DH_inner_data answer\n");
+               return -1;
+       }
+       in_ptr = decrypt_buffer + 5;
+
+       assert(fetch_int()  ==(int)CODE_server_DH_inner_data);
+       fetch_ints(tmp, 4);
+       if (memcmp(tmp, DC->nonce, 16)) {
+               vlogprintf(E_ERROR, "nonce mismatch\n");
+               return -1;
+       }
+       assert(!memcmp(tmp, DC->nonce, 16));
+       fetch_ints(tmp, 4);
+       if (memcmp(tmp, DC->server_nonce, 16)) {
+               vlogprintf(E_ERROR, "nonce mismatch\n");
+               return -1;
+       }
+       assert(!memcmp(tmp, DC->server_nonce, 16));
+       int g = fetch_int();
+
+       BIGNUM *dh_prime = BN_new();
+       BIGNUM *g_a = BN_new();
+       assert(fetch_bignum(dh_prime) > 0);
+       assert(fetch_bignum(g_a) > 0);
+
+       if (tglmp_check_DH_params(TLS, dh_prime, g) < 0) {
+               vlogprintf(E_ERROR, "bad DH params\n");
+               return -1;
+       }
+       if (tglmp_check_g_a(TLS, dh_prime, g_a) < 0) {
+               vlogprintf(E_ERROR, "bad dh_prime\n");
+               return -1;
+       }
+
+       int server_time = fetch_int();
+       assert(in_ptr <= in_end);
+
+       static char sha1_buffer[20];
+       sha1((unsigned char *) decrypt_buffer + 20,(in_ptr - decrypt_buffer - 5) * 4,(unsigned char *) sha1_buffer);
+       if (memcmp(decrypt_buffer, sha1_buffer, 20)) {
+               vlogprintf(E_ERROR, "bad encrypted message SHA1\n");
+               return -1;
+       }
+       if ((char *) in_end -(char *) in_ptr >= 16) {
+               vlogprintf(E_ERROR, "too much padding\n");
+               return -1;
+       }
+
+       DC->server_time_delta = server_time - get_utime(CLOCK_REALTIME);
+       DC->server_time_udelta = server_time - get_utime(CLOCK_MONOTONIC);
+
+       send_dh_params(TLS, c, dh_prime, g_a, g, temp_key);
+
+       BN_free(dh_prime);
+       BN_free(g_a);
+
+       return 1;
+}
+
+static void create_temp_auth_key(struct tgl_state *TLS, struct connection *c)
+{
+       assert(TLS->enable_pfs);
+       send_req_pq_temp_packet(TLS, c);
+}
+
+int tglmp_encrypt_inner_temp(struct tgl_state *TLS, struct connection *c, int *msg, int msg_ints, int useful, void *data, long long msg_id);
+static long long msg_id_override;
+static void mpc_on_get_config(struct tgl_state *TLS, void *extra, int success);
+static void bind_temp_auth_key(struct tgl_state *TLS, struct connection *c);
+
+/* {{{ RECV AUTH COMPLETE */
+
+// dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer;
+// dh_gen_retry#46dc1fb9 nonce:int128 server_nonce:int128 new_nonce_hash2:int128 = Set_client_DH_params_answer;
+// dh_gen_fail#a69dae02 nonce:int128 server_nonce:int128 new_nonce_hash3:int128 = Set_client_DH_params_answer;
+
+static int process_auth_complete(struct tgl_state *TLS, struct connection *c, char *packet, int len, int temp_key)
+{
+       struct tgl_dc *DC = TLS->net_methods->get_dc(c);
+       assert(!(len & 3));
+       in_ptr =(int *)packet;
+       in_end = in_ptr +(len / 4);
+       if (check_unauthorized_header(TLS) < 0) {
+               return -1;
+       }
+
+       int *in_save = in_ptr;
+       if (skip_type_any(TYPE_TO_PARAM(set_client_d_h_params_answer)) < 0 || in_ptr != in_end) {
+               vlogprintf(E_ERROR, "can not parse server_DH_params answer\n");
+               return -1;
+       }
+       in_ptr = in_save;
+
+       unsigned op = fetch_int();
+       assert(op == CODE_dh_gen_ok || op == CODE_dh_gen_retry || op == CODE_dh_gen_fail);
+
+       int tmp[4];
+       fetch_ints(tmp, 4);
+
+       if (memcmp(DC->nonce, tmp, 16)) {
+               vlogprintf(E_ERROR, "nonce mismatch\n");
+               return -1;
+       }
+
+       fetch_ints(tmp, 4);
+
+       if (memcmp(DC->server_nonce, tmp, 16)) {
+               vlogprintf(E_ERROR, "nonce mismatch\n");
+               return -1;
+       }
+
+       if (op != CODE_dh_gen_ok) {
+               vlogprintf(E_ERROR, "something bad. Retry regen\n");
+               return -1;
+       }
+
+       fetch_ints(tmp, 4);
+
+       static unsigned char th[44], sha1_buffer[20];
+       memcpy(th, DC->new_nonce, 32);
+       th[32] = 1;
+       if (!temp_key) {
+               sha1((unsigned char *)DC->auth_key, 256, sha1_buffer);
+       } else {
+               sha1((unsigned char *)DC->temp_auth_key, 256, sha1_buffer);
+       }
+       memcpy(th + 33, sha1_buffer, 8);
+       sha1(th, 41, sha1_buffer);
+       if (memcmp(tmp, sha1_buffer + 4, 16)) {
+               vlogprintf(E_ERROR, "hash mismatch\n");
+               return -1;
+       }
+
+       if (!temp_key) {
+               bl_do_set_auth_key_id(TLS, DC->id,(unsigned char *)DC->auth_key);
+               sha1((unsigned char *)DC->auth_key, 256, sha1_buffer);
+       } else {
+               sha1((unsigned char *)DC->temp_auth_key, 256, sha1_buffer);
+               DC->temp_auth_key_id = *(long long *)(sha1_buffer + 12);
+       }
+
+       DC->server_salt = *(long long *)DC->server_nonce ^ *(long long *)DC->new_nonce;
+
+       DC->state = st_authorized;
+
+       vlogprintf(E_DEBUG, "Auth success\n");
+       if (temp_key) {
+               bind_temp_auth_key(TLS, c);
+       } else {
+               DC->flags |= 1;
+               if (TLS->enable_pfs) {
+                       create_temp_auth_key(TLS, c);
+               } else {
+                       DC->temp_auth_key_id = DC->auth_key_id;
+                       memcpy(DC->temp_auth_key, DC->auth_key, 256);
+                       DC->flags |= 2;
+                       if (!(DC->flags & 4)) {
+                               tgl_do_help_get_config_dc(TLS, DC, mpc_on_get_config, DC);
+                       }
+               }
+       }
+       return 1;
+}
+
+static void bind_temp_auth_key(struct tgl_state *TLS, struct connection *c)
+{
+       struct tgl_dc *DC = TLS->net_methods->get_dc(c);
+       if (DC->temp_auth_key_bind_query_id) {
+               tglq_query_delete(TLS, DC->temp_auth_key_bind_query_id);
+       }
+       struct tgl_session *S = TLS->net_methods->get_session(c);
+       long long msg_id = generate_next_msg_id(TLS, DC, S);
+
+       clear_packet();
+       out_int(CODE_bind_auth_key_inner);
+       long long rand;
+       tglt_secure_random(&rand, 8);
+       out_long(rand);
+       out_long(DC->temp_auth_key_id);
+       out_long(DC->auth_key_id);
+
+       if (!S->session_id) {
+               tglt_secure_random(&S->session_id, 8);
+       }
+       out_long(S->session_id);
+       int expires = time(0) + DC->server_time_delta + TLS->temp_key_expire_time;
+       out_int(expires);
+
+       static int data[1000];
+       int len = tglmp_encrypt_inner_temp(TLS, c, packet_buffer, packet_ptr - packet_buffer, 0, data, msg_id);
+       msg_id_override = msg_id;
+       DC->temp_auth_key_bind_query_id = msg_id;
+       tgl_do_send_bind_temp_key(TLS, DC, rand, expires,(void *)data, len, msg_id);
+       msg_id_override = 0;
+}
+
+/*
+ *
+ *                AUTHORIZED(MAIN) PROTOCOL PART
+ *
+ */
+
+static struct encrypted_message enc_msg;
+
+static double get_server_time(struct tgl_dc *DC)
+{
+       return get_utime(CLOCK_MONOTONIC) + DC->server_time_udelta;
+}
+
+static long long generate_next_msg_id(struct tgl_state *TLS, struct tgl_dc *DC, struct tgl_session *S)
+{
+       long long next_id =(long long)(get_server_time(DC) *(1LL << 32)) & -4;
+       if (next_id <= S->last_msg_id) {
+               next_id = S->last_msg_id  += 4;
+       } else {
+               S->last_msg_id = next_id;
+       }
+       return next_id;
+}
+
+static void init_enc_msg(struct tgl_state *TLS, struct tgl_session *S, int useful)
+{
+       struct tgl_dc *DC = S->dc;
+       assert(DC->state == st_authorized);
+       assert(DC->temp_auth_key_id);
+       vlogprintf(E_DEBUG, "temp_auth_key_id = 0x%016llx, auth_key_id = 0x%016llx\n", DC->temp_auth_key_id, DC->auth_key_id);
+       enc_msg.auth_key_id = DC->temp_auth_key_id;
+       enc_msg.server_salt = DC->server_salt;
+       if (!S->session_id) {
+               tglt_secure_random(&S->session_id, 8);
+       }
+       enc_msg.session_id = S->session_id;
+       enc_msg.msg_id = msg_id_override ? msg_id_override : generate_next_msg_id(TLS, DC, S);
+       enc_msg.seq_no = S->seq_no;
+       if (useful) {
+               enc_msg.seq_no |= 1;
+       }
+       S->seq_no += 2;
+};
+
+static void init_enc_msg_inner_temp(struct tgl_dc *DC, long long msg_id)
+{
+       enc_msg.auth_key_id = DC->auth_key_id;
+       tglt_secure_random(&enc_msg.server_salt, 8);
+       tglt_secure_random(&enc_msg.session_id, 8);
+       enc_msg.msg_id = msg_id;
+       enc_msg.seq_no = 0;
+};
+
+
+static int aes_encrypt_message(struct tgl_state *TLS, char *key, struct encrypted_message *enc)
+{
+       unsigned char sha1_buffer[20];
+       const int MINSZ = offsetof(struct encrypted_message, message);
+       const int UNENCSZ = offsetof(struct encrypted_message, server_salt);
+
+       int enc_len =(MINSZ - UNENCSZ) + enc->msg_len;
+       assert(enc->msg_len >= 0 && enc->msg_len <= MAX_MESSAGE_INTS * 4 - 16 && !(enc->msg_len & 3));
+       sha1((unsigned char *) &enc->server_salt, enc_len, sha1_buffer);
+       vlogprintf(E_DEBUG, "sending message with sha1 %08x\n", *(int *)sha1_buffer);
+       memcpy(enc->msg_key, sha1_buffer + 4, 16);
+       tgl_init_aes_auth(key, enc->msg_key, AES_ENCRYPT);
+       return tgl_pad_aes_encrypt((char *) &enc->server_salt, enc_len,(char *) &enc->server_salt, MAX_MESSAGE_INTS * 4 +(MINSZ - UNENCSZ));
+}
+
+long long tglmp_encrypt_send_message(struct tgl_state *TLS, struct connection *c, int *msg, int msg_ints, int flags)
+{
+       struct tgl_dc *DC = TLS->net_methods->get_dc(c);
+       struct tgl_session *S = TLS->net_methods->get_session(c);
+       assert(S);
+       if (!(DC->flags & 4) && !(flags & 2)) {
+               return generate_next_msg_id(TLS, DC, S);
+       }
+
+       const int UNENCSZ = offsetof(struct encrypted_message, server_salt);
+       if (msg_ints <= 0 || msg_ints > MAX_MESSAGE_INTS - 4) {
+               return -1;
+       }
+       if (msg) {
+               memcpy(enc_msg.message, msg, msg_ints * 4);
+               enc_msg.msg_len = msg_ints * 4;
+       } else {
+               if ((enc_msg.msg_len & 0x80000003) || enc_msg.msg_len > MAX_MESSAGE_INTS * 4 - 16) {
+                       return -1;
+               }
+       }
+       init_enc_msg(TLS, S, flags & 1);
+
+       int l = aes_encrypt_message(TLS, DC->temp_auth_key, &enc_msg);
+       assert(l > 0);
+       vlogprintf(E_DEBUG, "Sending message to DC%d: %s:%d with key_id=%lld\n", DC->id, DC->ip, DC->port, enc_msg.auth_key_id);
+       rpc_send_message(TLS, c, &enc_msg, l + UNENCSZ);
+
+       return S->last_msg_id;
+}
+
+int tglmp_encrypt_inner_temp(struct tgl_state *TLS, struct connection *c, int *msg, int msg_ints, int useful, void *data, long long msg_id)
+{
+       struct tgl_dc *DC = TLS->net_methods->get_dc(c);
+       struct tgl_session *S = TLS->net_methods->get_session(c);
+       assert(S);
+
+       const int UNENCSZ = offsetof(struct encrypted_message, server_salt);
+       if (msg_ints <= 0 || msg_ints > MAX_MESSAGE_INTS - 4) {
+               return -1;
+       }
+       memcpy(enc_msg.message, msg, msg_ints * 4);
+       enc_msg.msg_len = msg_ints * 4;
+
+       init_enc_msg_inner_temp(DC, msg_id);
+
+       int l = aes_encrypt_message(TLS, DC->auth_key, &enc_msg);
+       assert(l > 0);
+       //rpc_send_message(c, &enc_msg, l + UNENCSZ);
+       memcpy(data, &enc_msg, l + UNENCSZ);
+
+       return l + UNENCSZ;
+}
+
+static int rpc_execute_answer(struct tgl_state *TLS, struct connection *c, long long msg_id);
+
+static int work_container(struct tgl_state *TLS, struct connection *c, long long msg_id)
+{
+       vlogprintf(E_DEBUG, "work_container: msg_id = %lld\n", msg_id);
+       assert(fetch_int() == CODE_msg_container);
+       int n = fetch_int();
+       int i;
+       for (i = 0; i < n; i++) {
+               long long id = fetch_long();
+               fetch_int(); // seq_no
+               if (id & 1) {
+                       tgln_insert_msg_id(TLS, TLS->net_methods->get_session(c), id);
+               }
+               int bytes = fetch_int();
+               int *t = in_end;
+               in_end = in_ptr +(bytes / 4);
+               int r = rpc_execute_answer(TLS, c, id);
+               if (r < 0) { return -1; }
+               assert(in_ptr == in_end);
+               in_end = t;
+       }
+       return 0;
+}
+
+static int work_new_session_created(struct tgl_state *TLS, struct connection *c, long long msg_id)
+{
+       vlogprintf(E_DEBUG, "work_new_session_created: msg_id = %lld\n", msg_id);
+       assert(fetch_int() ==(int)CODE_new_session_created);
+       fetch_long(); // first message id
+       fetch_long(); // unique_id
+       TLS->net_methods->get_dc(c)->server_salt = fetch_long();
+       if (TLS->started && !(TLS->locks & TGL_LOCK_DIFF) && TLS->DC_working->has_auth) {
+               tgl_do_get_difference(TLS, 0, 0, 0);
+       }
+       return 0;
+}
+
+static int work_msgs_ack(struct tgl_state *TLS, struct connection *c, long long msg_id)
+{
+       vlogprintf(E_DEBUG, "work_msgs_ack: msg_id = %lld\n", msg_id);
+       assert(fetch_int() == CODE_msgs_ack);
+       assert(fetch_int() == CODE_vector);
+       int n = fetch_int();
+       int i;
+       for (i = 0; i < n; i++) {
+               long long id = fetch_long();
+               vlogprintf(E_DEBUG + 1, "ack for %lld\n", id);
+               tglq_query_ack(TLS, id);
+       }
+       return 0;
+}
+
+static int work_rpc_result(struct tgl_state *TLS, struct connection *c, long long msg_id)
+{
+       vlogprintf(E_DEBUG, "work_rpc_result: msg_id = %lld\n", msg_id);
+       assert(fetch_int() ==(int)CODE_rpc_result);
+       long long id = fetch_long();
+       int op = prefetch_int();
+       if (op == CODE_rpc_error) {
+               return tglq_query_error(TLS, id);
+       } else {
+               return tglq_query_result(TLS, id);
+       }
+}
+
+#define MAX_PACKED_SIZE (1 << 24)
+static int work_packed(struct tgl_state *TLS, struct connection *c, long long msg_id)
+{
+       assert(fetch_int() == CODE_gzip_packed);
+       static int in_gzip;
+       static int buf[MAX_PACKED_SIZE >> 2];
+       assert(!in_gzip);
+       in_gzip = 1;
+
+       int l = prefetch_strlen();
+       char *s = fetch_str(l);
+
+       int total_out = tgl_inflate(s, l, buf, MAX_PACKED_SIZE);
+       int *end = in_ptr;
+       int *eend = in_end;
+       //assert(total_out % 4 == 0);
+       in_ptr = buf;
+       in_end = in_ptr + total_out / 4;
+       int r = rpc_execute_answer(TLS, c, msg_id);
+       in_ptr = end;
+       in_end = eend;
+       in_gzip = 0;
+       return r;
+}
+
+static int work_bad_server_salt(struct tgl_state *TLS, struct connection *c, long long msg_id)
+{
+       assert(fetch_int() ==(int)CODE_bad_server_salt);
+       long long id = fetch_long();
+       tglq_query_restart(TLS, id);
+       fetch_int(); // seq_no
+       fetch_int(); // error_code
+       long long new_server_salt = fetch_long();
+       TLS->net_methods->get_dc(c)->server_salt = new_server_salt;
+       return 0;
+}
+
+static int work_pong(struct tgl_state *TLS, struct connection *c, long long msg_id)
+{
+       assert(fetch_int() == CODE_pong);
+       fetch_long(); // msg_id
+       fetch_long(); // ping_id
+       return 0;
+}
+
+static int work_detailed_info(struct tgl_state *TLS, struct connection *c, long long msg_id)
+{
+       assert(fetch_int() == CODE_msg_detailed_info);
+       fetch_long(); // msg_id
+       fetch_long(); // answer_msg_id
+       fetch_int(); // bytes
+       fetch_int(); // status
+       return 0;
+}
+
+static int work_new_detailed_info(struct tgl_state *TLS, struct connection *c, long long msg_id)
+{
+       assert(fetch_int() ==(int)CODE_msg_new_detailed_info);
+       fetch_long(); // answer_msg_id
+       fetch_int(); // bytes
+       fetch_int(); // status
+       return 0;
+}
+
+static int work_bad_msg_notification(struct tgl_state *TLS, struct connection *c, long long msg_id)
+{
+       assert(fetch_int() ==(int)CODE_bad_msg_notification);
+       long long m1 = fetch_long();
+       int s = fetch_int();
+       int e = fetch_int();
+       vlogprintf(E_NOTICE, "bad_msg_notification: msg_id = %lld, seq = %d, error = %d\n", m1, s, e);
+       switch(e) {
+       // Too low msg id
+       case 16:
+               tglq_regen_query(TLS, m1);
+               break;
+               // Too high msg id
+       case 17:
+               tglq_regen_query(TLS, m1);
+               break;
+       default:
+               vlogprintf(E_NOTICE, "bad_msg_notification: msg_id = %lld, seq = %d, error = %d\n", m1, s, e);
+               break;
+       }
+
+       return -1;
+}
+
+static int rpc_execute_answer(struct tgl_state *TLS, struct connection *c, long long msg_id)
+{
+       int op = prefetch_int();
+       switch(op) {
+       case CODE_msg_container:
+               return work_container(TLS, c, msg_id);
+       case CODE_new_session_created:
+               return work_new_session_created(TLS, c, msg_id);
+       case CODE_msgs_ack:
+               return work_msgs_ack(TLS, c, msg_id);
+       case CODE_rpc_result:
+               return work_rpc_result(TLS, c, msg_id);
+       case CODE_update_short:
+               tglu_work_update_short(TLS, c, msg_id);
+               return 0;
+       case CODE_updates:
+               tglu_work_updates(TLS, c, msg_id);
+               return 0;
+       case CODE_update_short_message:
+               tglu_work_update_short_message(TLS, c, msg_id);
+               return 0;
+       case CODE_update_short_chat_message:
+               tglu_work_update_short_chat_message(TLS, c, msg_id);
+               return 0;
+       case CODE_gzip_packed:
+               return work_packed(TLS, c, msg_id);
+       case CODE_bad_server_salt:
+               return work_bad_server_salt(TLS, c, msg_id);
+       case CODE_pong:
+               return work_pong(TLS, c, msg_id);
+       case CODE_msg_detailed_info:
+               return work_detailed_info(TLS, c, msg_id);
+       case CODE_msg_new_detailed_info:
+               return work_new_detailed_info(TLS, c, msg_id);
+       case CODE_updates_too_long:
+               tglu_work_updates_to_long(TLS, c, msg_id);
+               return 0;
+       case CODE_bad_msg_notification:
+               return work_bad_msg_notification(TLS, c, msg_id);
+       }
+       vlogprintf(E_WARNING, "Unknown message: %08x\n", op);
+       in_ptr = in_end; // Will not fail due to assertion in_ptr == in_end
+       return 0;
+}
+
+static struct mtproto_methods mtproto_methods;
+void tgls_free_session(struct tgl_state *TLS, struct tgl_session *S);
+
+static char *get_ipv6(struct tgl_state *TLS, int num)
+{
+       static char res[1<< 10];
+       if (TLS->test_mode) {
+               switch(num) {
+               case 1:
+                       strcpy(res, TG_SERVER_TEST_IPV6_1);
+                       break;
+               case 2:
+                       strcpy(res, TG_SERVER_TEST_IPV6_2);
+                       break;
+               case 3:
+                       strcpy(res, TG_SERVER_TEST_IPV6_3);
+                       break;
+               default:
+                       assert(0);
+               }
+       } else {
+               switch(num) {
+               case 1:
+                       strcpy(res, TG_SERVER_IPV6_1);
+                       break;
+               case 2:
+                       strcpy(res, TG_SERVER_IPV6_2);
+                       break;
+               case 3:
+                       strcpy(res, TG_SERVER_IPV6_3);
+                       break;
+               case 4:
+                       strcpy(res, TG_SERVER_IPV6_4);
+                       break;
+               case 5:
+                       strcpy(res, TG_SERVER_IPV6_5);
+                       break;
+               default:
+                       assert(0);
+               }
+       }
+       return res;
+}
+
+static void fail_connection(struct tgl_state *TLS, struct connection *c)
+{
+       struct tgl_session *S = TLS->net_methods->get_session(c);
+       struct tgl_dc *DC = TLS->net_methods->get_dc(c);
+       TLS->net_methods->free(c);
+       S->c = TLS->net_methods->create_connection(TLS, TLS->ipv6_enabled ? get_ipv6(TLS, DC->id) : DC->ip, DC->port, S, DC, &mtproto_methods);
+}
+
+static void fail_session(struct tgl_state *TLS, struct tgl_session *S)
+{
+       vlogprintf(E_NOTICE, "failing session %lld\n", S->session_id);
+       struct tgl_dc *DC = S->dc;
+       tgls_free_session(TLS, S);
+       DC->sessions[0] = NULL;
+       tglmp_dc_create_session(TLS, DC);
+}
+
+static int process_rpc_message(struct tgl_state *TLS, struct connection *c, struct encrypted_message *enc, int len)
+{
+       const int MINSZ = offsetof(struct encrypted_message, message);
+       const int UNENCSZ = offsetof(struct encrypted_message, server_salt);
+       vlogprintf(E_DEBUG, "process_rpc_message(), len=%d\n", len);
+       if (len < MINSZ ||(len & 15) !=(UNENCSZ & 15)) {
+               vlogprintf(E_WARNING, "Incorrect packet from server. Closing connection\n");
+               fail_connection(TLS, c);
+               return -1;
+       }
+       assert(len >= MINSZ &&(len & 15) ==(UNENCSZ & 15));
+       struct tgl_dc *DC = TLS->net_methods->get_dc(c);
+       if (enc->auth_key_id != DC->temp_auth_key_id && enc->auth_key_id != DC->auth_key_id) {
+               vlogprintf(E_WARNING, "received msg from dc %d with auth_key_id %lld(perm_auth_key_id %lld temp_auth_key_id %lld). Dropping\n",
+                               DC->id, enc->auth_key_id, DC->auth_key_id, DC->temp_auth_key_id);
+               return 0;
+       }
+       if (enc->auth_key_id == DC->temp_auth_key_id) {
+               assert(enc->auth_key_id == DC->temp_auth_key_id);
+               assert(DC->temp_auth_key_id);
+               tgl_init_aes_auth(DC->temp_auth_key + 8, enc->msg_key, AES_DECRYPT);
+       } else {
+               assert(enc->auth_key_id == DC->auth_key_id);
+               assert(DC->auth_key_id);
+               tgl_init_aes_auth(DC->auth_key + 8, enc->msg_key, AES_DECRYPT);
+       }
+
+       int l = tgl_pad_aes_decrypt((char *)&enc->server_salt, len - UNENCSZ,(char *)&enc->server_salt, len - UNENCSZ);
+       assert(l == len - UNENCSZ);
+
+       if (!(!(enc->msg_len & 3) && enc->msg_len > 0 && enc->msg_len <= len - MINSZ && len - MINSZ - enc->msg_len <= 12)) {
+               vlogprintf(E_WARNING, "Incorrect packet from server. Closing connection\n");
+               fail_connection(TLS, c);
+               return -1;
+       }
+       assert(!(enc->msg_len & 3) && enc->msg_len > 0 && enc->msg_len <= len - MINSZ && len - MINSZ - enc->msg_len <= 12);
+
+       struct tgl_session *S = TLS->net_methods->get_session(c);
+       if (!S || S->session_id != enc->session_id) {
+               vlogprintf(E_WARNING, "Message to bad session. Drop.\n");
+               return 0;
+       }
+
+       static unsigned char sha1_buffer[20];
+       sha1((void *)&enc->server_salt, enc->msg_len +(MINSZ - UNENCSZ), sha1_buffer);
+       if (memcmp(&enc->msg_key, sha1_buffer + 4, 16)) {
+               vlogprintf(E_WARNING, "Incorrect packet from server. Closing connection\n");
+               fail_connection(TLS, c);
+               return -1;
+       }
+       assert(!memcmp(&enc->msg_key, sha1_buffer + 4, 16));
+
+       int this_server_time = enc->msg_id >> 32LL;
+       if (!S->received_messages) {
+               DC->server_time_delta = this_server_time - get_utime(CLOCK_REALTIME);
+               if (DC->server_time_udelta) {
+                       vlogprintf(E_WARNING, "adjusting CLOCK_MONOTONIC delta to %lf\n",
+                                       DC->server_time_udelta - this_server_time + get_utime(CLOCK_MONOTONIC));
+               }
+               DC->server_time_udelta = this_server_time - get_utime(CLOCK_MONOTONIC);
+       }
+
+       double st = get_server_time(DC);
+       if (this_server_time < st - 300 || this_server_time > st + 30) {
+               vlogprintf(E_WARNING, "bad msg time: salt = %lld, session_id = %lld, msg_id = %lld, seq_no = %d, st = %lf, now = %lf\n", enc->server_salt, enc->session_id, enc->msg_id, enc->seq_no, st, get_utime(CLOCK_REALTIME));
+               fail_session(TLS, S);
+               return -1;
+       }
+       S->received_messages ++;
+
+       if (DC->server_salt != enc->server_salt) {
+               DC->server_salt = enc->server_salt;
+       }
+
+       assert(this_server_time >= st - 300 && this_server_time <= st + 30);
+       //assert(enc->msg_id > server_last_msg_id &&(enc->msg_id & 3) == 1);
+       vlogprintf(E_DEBUG, "received mesage id %016llx\n", enc->msg_id);
+       //server_last_msg_id = enc->msg_id;
+
+       //*(long long *)(longpoll_query + 3) = *(long long *)((char *)(&enc->msg_id) + 0x3c);
+       //*(long long *)(longpoll_query + 5) = *(long long *)((char *)(&enc->msg_id) + 0x3c);
+
+       assert(l >=(MINSZ - UNENCSZ) + 8);
+       //assert(enc->message[0] == CODE_rpc_result && *(long long *)(enc->message + 1) == client_last_msg_id);
+
+       in_ptr = enc->message;
+       in_end = in_ptr +(enc->msg_len / 4);
+
+       if (enc->msg_id & 1) {
+               tgln_insert_msg_id(TLS, S, enc->msg_id);
+       }
+       assert(S->session_id == enc->session_id);
+
+       if (rpc_execute_answer(TLS, c, enc->msg_id) < 0) {
+               fail_session(TLS, S);
+               return -1;
+       }
+       assert(in_ptr == in_end);
+       return 0;
+}
+
+
+static int rpc_execute(struct tgl_state *TLS, struct connection *c, int op, int len)
+{
+       struct tgl_dc *DC = TLS->net_methods->get_dc(c);
+       vlogprintf(E_DEBUG, "outbound rpc connection from dc #%d(%s:%d) : received rpc answer %d with %d content bytes\n", DC->id, DC->ip, DC->port, op, len);
+
+       if (len >= MAX_RESPONSE_SIZE/* - 12*/ || len < 0/*12*/) {
+               vlogprintf(E_WARNING, "answer too long(%d bytes), skipping\n", len);
+               return 0;
+       }
+
+       int Response_len = len;
+
+       static char Response[MAX_RESPONSE_SIZE];
+       vlogprintf(E_DEBUG, "Response_len = %d\n", Response_len);
+       assert(TLS->net_methods->read_in(c, Response, Response_len) == Response_len);
+
+#if !defined(__MACH__) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__CYGWIN__)
+       //  setsockopt(c->fd, IPPROTO_TCP, TCP_QUICKACK,(int[]){0}, 4);
+#endif
+       int o = DC->state;
+       if (o != st_authorized) {
+               vlogprintf(E_DEBUG, "%s: state = %d\n", __func__, o);
+       }
+       switch(o) {
+       case st_reqpq_sent:
+               process_respq_answer(TLS, c, Response/* + 8*/, Response_len/* - 12*/, 0);
+               return 0;
+       case st_reqdh_sent:
+               process_dh_answer(TLS, c, Response/* + 8*/, Response_len/* - 12*/, 0);
+               return 0;
+       case st_client_dh_sent:
+               process_auth_complete(TLS, c, Response/* + 8*/, Response_len/* - 12*/, 0);
+               return 0;
+       case st_reqpq_sent_temp:
+               process_respq_answer(TLS, c, Response/* + 8*/, Response_len/* - 12*/, 1);
+               return 0;
+       case st_reqdh_sent_temp:
+               process_dh_answer(TLS, c, Response/* + 8*/, Response_len/* - 12*/, 1);
+               return 0;
+       case st_client_dh_sent_temp:
+               process_auth_complete(TLS, c, Response/* + 8*/, Response_len/* - 12*/, 1);
+               return 0;
+       case st_authorized:
+               if (op < 0 && op >= -999) {
+                       vlogprintf(E_WARNING, "Server error %d\n", op);
+               } else {
+                       return process_rpc_message(TLS, c,(void *)(Response/* + 8*/), Response_len/* - 12*/);
+               }
+               return 0;
+       default:
+               vlogprintf(E_ERROR, "fatal: cannot receive answer in state %d\n", DC->state);
+               exit(2);
+       }
+
+       return 0;
+}
+
+
+static int tc_close(struct tgl_state *TLS, struct connection *c, int who)
+{
+       vlogprintf(E_DEBUG, "outbound rpc connection from dc #%d : closing by %d\n", TLS->net_methods->get_dc(c)->id, who);
+       return 0;
+}
+
+static void mpc_on_get_config(struct tgl_state *TLS, void *extra, int success)
+{
+       assert(success);
+       struct tgl_dc *DC = extra;
+       DC->flags |= 4;
+}
+
+static int tc_becomes_ready(struct tgl_state *TLS, struct connection *c)
+{
+       vlogprintf(E_NOTICE, "outbound rpc connection from dc #%d becomed ready\n", TLS->net_methods->get_dc(c)->id);
+       struct tgl_dc *DC = TLS->net_methods->get_dc(c);
+       if (DC->flags & 1) { DC->state = st_authorized; }
+       int o = DC->state;
+       if (o == st_authorized && !TLS->enable_pfs) {
+               DC->temp_auth_key_id = DC->auth_key_id;
+               memcpy(DC->temp_auth_key, DC->auth_key, 256);
+               DC->flags |= 2;
+       }
+       switch(o) {
+       case st_init:
+               send_req_pq_packet(TLS, c);
+               break;
+       case st_authorized:
+               if (!(DC->flags & 2)) {
+                       assert(TLS->enable_pfs);
+                       if (!DC->temp_auth_key_id) {
+                               assert(!DC->temp_auth_key_id);
+                               create_temp_auth_key(TLS, c);
+                       } else {
+                               bind_temp_auth_key(TLS, c);
+                       }
+               } else if (!(DC->flags & 4)) {
+                       tgl_do_help_get_config_dc(TLS, DC, mpc_on_get_config, DC);
+               }
+               break;
+       default:
+               vlogprintf(E_DEBUG, "c_state = %d\n", DC->state);
+               assert(0);
+       }
+       return 0;
+}
+
+static int rpc_becomes_ready(struct tgl_state *TLS, struct connection *c)
+{
+       return tc_becomes_ready(TLS, c);
+}
+
+static int rpc_close(struct tgl_state *TLS, struct connection *c)
+{
+       return tc_close(TLS, c, 0);
+}
+
+
+#define RANDSEED_PASSWORD_FILENAME     NULL
+#define RANDSEED_PASSWORD_LENGTH       0
+
+void tglmp_on_start(struct tgl_state *TLS)
+{
+       tgl_prng_seed(TLS, RANDSEED_PASSWORD_FILENAME, RANDSEED_PASSWORD_LENGTH);
+
+       int i;
+       int ok = 0;
+       for (i = 0; i < TLS->rsa_key_num; i++) {
+               char *key = TLS->rsa_key_list[i];
+               RSA *res = rsa_load_public_key(TLS, key);
+               if (!res) {
+                       vlogprintf(E_WARNING, "Can not load key %s\n", key);
+                       TLS->rsa_key_loaded[i] = NULL;
+               } else {
+                       ok = 1;
+                       TLS->rsa_key_loaded[i] = res;
+                       TLS->rsa_key_fingerprint[i] = tgl_do_compute_rsa_key_fingerprint(res);
+               }
+       }
+
+       if (!ok) {
+               vlogprintf(E_ERROR, "No public keys found\n");
+               exit(1);
+       }
+}
+
+void tgl_dc_authorize(struct tgl_state *TLS, struct tgl_dc *DC)
+{
+       if (!DC->sessions[0]) {
+               tglmp_dc_create_session(TLS, DC);
+       }
+       vlogprintf(E_DEBUG, "Starting authorization for DC #%d: %s:%d\n", DC->id, DC->ip, DC->port);
+}
+
+#define long_cmp(a,b)((a) >(b) ? 1 :(a) ==(b) ? 0 : -1)
+DEFINE_TREE(long,long long,long_cmp,0)
+
+static int send_all_acks(struct tgl_state *TLS, struct tgl_session *S)
+{
+       clear_packet();
+       out_int(CODE_msgs_ack);
+       out_int(CODE_vector);
+       out_int(tree_count_long(S->ack_tree));
+       while(S->ack_tree) {
+               long long x = tree_get_min_long(S->ack_tree);
+               out_long(x);
+               S->ack_tree = tree_delete_long(S->ack_tree, x);
+       }
+       tglmp_encrypt_send_message(TLS, S->c, packet_buffer, packet_ptr - packet_buffer, 0);
+       return 0;
+}
+
+static void send_all_acks_gateway(struct tgl_state *TLS, void *arg)
+{
+       send_all_acks(TLS, arg);
+}
+
+
+void tgln_insert_msg_id(struct tgl_state *TLS, struct tgl_session *S, long long id)
+{
+       if (!S->ack_tree) {
+               TLS->timer_methods->insert(S->ev, ACK_TIMEOUT);
+       }
+       if (!tree_lookup_long(S->ack_tree, id)) {
+               S->ack_tree = tree_insert_long(S->ack_tree, id, lrand48());
+       }
+}
+
+static void regen_temp_key_gw(struct tgl_state *TLS, void *arg)
+{
+       tglmp_regenerate_temp_auth_key(TLS, arg);
+}
+
+struct tgl_dc *tglmp_alloc_dc(struct tgl_state *TLS, int id, char *ip, int port)
+{
+       if (!TLS->DC_list[id]) {
+               struct tgl_dc *DC = talloc0(sizeof(*DC));
+               DC->id = id;
+               DC->ip = ip;
+               DC->port = port;
+               TLS->DC_list[id] = DC;
+               if (id > TLS->max_dc_num) {
+                       TLS->max_dc_num = id;
+               }
+               DC->ev = TLS->timer_methods->alloc(TLS, regen_temp_key_gw, DC);
+               TLS->timer_methods->insert(DC->ev, 0);
+               return DC;
+       } else {
+               struct tgl_dc *DC = TLS->DC_list[id];
+               tfree_str(DC->ip);
+               DC->ip = tstrdup(ip);
+               return DC;
+       }
+}
+
+static struct mtproto_methods mtproto_methods = {
+               .execute = rpc_execute,
+               .ready = rpc_becomes_ready,
+               .close = rpc_close
+};
+
+void tglmp_dc_create_session(struct tgl_state *TLS, struct tgl_dc *DC)
+{
+       struct tgl_session *S = talloc0(sizeof(*S));
+       assert(RAND_pseudo_bytes((unsigned char *) &S->session_id, 8) >= 0);
+       S->dc = DC;
+       //S->c = TLS->net_methods->create_connection(TLS, DC->ip, DC->port, S, DC, &mtproto_methods);
+       S->c = TLS->net_methods->create_connection(TLS, TLS->ipv6_enabled ? get_ipv6(TLS, DC->id) : DC->ip, DC->port, S, DC, &mtproto_methods);
+       if (!S->c) {
+               vlogprintf(E_DEBUG, "Can not create connection to DC. Is network down?\n");
+               exit(1);
+       }
+       S->ev = TLS->timer_methods->alloc(TLS, send_all_acks_gateway, S);
+       assert(!DC->sessions[0]);
+       DC->sessions[0] = S;
+}
+
+void tgl_do_send_ping(struct tgl_state *TLS, struct connection *c)
+{
+       int x[3];
+       x[0] = CODE_ping;
+       *(long long *)(x + 1) = lrand48() *(1ll << 32) + lrand48();
+       tglmp_encrypt_send_message(TLS, c, x, 3, 0);
+}
+
+void tgl_dc_iterator(struct tgl_state *TLS, void(*iterator)(struct tgl_dc *DC))
+{
+       int i;
+       for (i = 0; i <= TLS->max_dc_num; i++) {
+               iterator(TLS->DC_list[i]);
+       }
+}
+
+void tgl_dc_iterator_ex(struct tgl_state *TLS, void(*iterator)(struct tgl_dc *DC, void *extra), void *extra)
+{
+       int i;
+       for (i = 0; i <= TLS->max_dc_num; i++) {
+               iterator(TLS->DC_list[i], extra);
+       }
+}
+
+void tglmp_regenerate_temp_auth_key(struct tgl_state *TLS, struct tgl_dc *DC)
+{
+       DC->flags &= ~6;
+       DC->temp_auth_key_id = 0;
+       memset(DC->temp_auth_key, 0, 256);
+
+       if (!DC->sessions[0]) {
+               tgl_dc_authorize(TLS, DC);
+               return;
+       }
+
+
+       struct tgl_session *S = DC->sessions[0];
+       tglt_secure_random(&S->session_id, 8);
+       S->seq_no = 0;
+
+       TLS->timer_methods->remove(S->ev);
+       S->ack_tree = tree_clear_long(S->ack_tree);
+
+       if (DC->state != st_authorized) {
+               return;
+       }
+
+       if (S->c) {
+               create_temp_auth_key(TLS, S->c);
+       }
+}
+
+void tgls_free_session(struct tgl_state *TLS, struct tgl_session *S)
+{
+       S->ack_tree = tree_clear_long(S->ack_tree);
+       if (S->ev) { TLS->timer_methods->free(S->ev); }
+       if (S->c) {
+               TLS->net_methods->free(S->c);
+       }
+       tfree(S, sizeof(*S));
+}
+
+void tgls_free_dc(struct tgl_state *TLS, struct tgl_dc *DC)
+{
+       if (DC->ip) { tfree_str(DC->ip); }
+
+       struct tgl_session *S = DC->sessions[0];
+       if (S) { tgls_free_session(TLS, S); }
+
+       if (DC->ev) { TLS->timer_methods->free(DC->ev); }
+       tfree(DC, sizeof(*DC));
+}
+
+void tgls_free_pubkey(struct tgl_state *TLS)
+{
+       int i;
+       for (i = 0; i < TLS->rsa_key_num; i++) {
+               if (TLS->rsa_key_loaded[i]) {
+                       RSA_free(TLS->rsa_key_loaded[i]);
+                       TLS->rsa_key_loaded[i] = NULL;
+               }
+       }
+}
diff --git a/tg-engine-service/mtprotocol/mtproto-client.h b/tg-engine-service/mtprotocol/mtproto-client.h
new file mode 100644 (file)
index 0000000..cc5ea5b
--- /dev/null
@@ -0,0 +1,48 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Nikolay Durov, Andrey Lopatin 2012-2013
+              Vitaly Valtman 2013-2015
+*/
+#ifndef __MTPROTO_CLIENT_H__
+#define __MTPROTO_CLIENT_H__
+
+#include <openssl/bn.h>
+#include "tgl.h"
+
+struct connection;
+struct tgl_dc;
+
+#define TG_APP_HASH "8b5082937b2eb8814559291b93caa8a5"
+#define TG_APP_ID 26793
+
+#define ACK_TIMEOUT 1
+#define MAX_DC_ID 10
+
+struct connection;
+
+long long tglmp_encrypt_send_message (struct tgl_state *TLS, struct connection *c, int *msg, int msg_ints, int flags);
+void tglmp_dc_create_session (struct tgl_state *TLS, struct tgl_dc *DC);
+struct tgl_dc *tglmp_alloc_dc (struct tgl_state *TLS, int id, char *ip, int port);
+void tglmp_regenerate_temp_auth_key (struct tgl_state *TLS, struct tgl_dc *D);
+void tgln_insert_msg_id (struct tgl_state *TLS, struct tgl_session *S, long long id);
+void tglmp_on_start (struct tgl_state *TLS);
+void tgl_dc_authorize (struct tgl_state *TLS, struct tgl_dc *DC);
+void tgls_free_dc (struct tgl_state *TLS, struct tgl_dc *DC);
+void tgls_free_pubkey (struct tgl_state *TLS);
+
+#endif
diff --git a/tg-engine-service/mtprotocol/mtproto-common.c b/tg-engine-service/mtprotocol/mtproto-common.c
new file mode 100644 (file)
index 0000000..d625114
--- /dev/null
@@ -0,0 +1,399 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or(at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Nikolay Durov, Andrey Lopatin 2012-2013
+              Vitaly Valtman 2013-2015
+ */
+
+#define        _FILE_OFFSET_BITS 64
+
+#include <assert.h>
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/types.h>
+#include <netdb.h>
+#include <openssl/bn.h>
+#include <openssl/rand.h>
+#include <openssl/pem.h>
+#include <openssl/aes.h>
+#include <openssl/sha.h>
+#include "mtproto-common.h"
+#include "tools.h"
+
+#ifdef __MACH__
+#include <mach/clock.h>
+#include <mach/mach.h>
+#endif
+
+static int __packet_buffer[PACKET_BUFFER_SIZE + 16];
+int *tgl_packet_ptr;
+int *tgl_packet_buffer = __packet_buffer + 16;
+
+static long long rsa_encrypted_chunks, rsa_decrypted_chunks;
+
+static int get_random_bytes(struct tgl_state *TLS, unsigned char *buf, int n)
+{
+       int r = 0, h = open("/dev/random", O_RDONLY | O_NONBLOCK);
+       if (h >= 0) {
+               r = read(h, buf, n);
+               if (r > 0) {
+                       vlogprintf(E_DEBUG, "added %d bytes of real entropy to secure random numbers seed\n", r);
+               } else {
+                       r = 0;
+               }
+               close(h);
+       }
+
+       if (r < n) {
+               h = open("/dev/urandom", O_RDONLY);
+               if (h < 0) {
+                       return r;
+               }
+               int s = read(h, buf + r, n - r);
+               close(h);
+               if (s > 0) {
+                       r += s;
+               }
+       }
+
+       if (r >=(int) sizeof(long)) {
+               *(long *)buf ^= lrand48();
+               srand48(*(long *)buf);
+       }
+
+       return r;
+}
+
+/* RDTSC */
+#if defined(__i386__)
+#define HAVE_RDTSC
+static __inline__ unsigned long long rdtsc(void) {
+       unsigned long long int x;
+       __asm__ volatile("rdtsc" : "=A"(x));
+       return x;
+}
+#elif defined(__x86_64__)
+#define HAVE_RDTSC
+static __inline__ unsigned long long rdtsc(void)
+{
+       unsigned hi, lo;
+       __asm__ __volatile__("rdtsc" : "=a"(lo), "=d"(hi));
+       return((unsigned long long) lo) |(((unsigned long long) hi) << 32);
+}
+#endif
+
+void tgl_prng_seed(struct tgl_state *TLS, const char *password_filename, int password_length)
+{
+       struct timespec T;
+       tgl_my_clock_gettime(CLOCK_REALTIME, &T);
+       RAND_add(&T, sizeof(T), 4.0);
+#ifdef HAVE_RDTSC
+       unsigned long long r = rdtsc();
+       RAND_add(&r, 8, 4.0);
+#endif
+       unsigned short p = getpid();
+       RAND_add(&p, sizeof(p), 0.0);
+       p = getppid();
+       RAND_add(&p, sizeof(p), 0.0);
+       unsigned char rb[32];
+       int s = get_random_bytes(TLS, rb, 32);
+       if (s > 0) {
+               RAND_add(rb, s, s);
+       }
+       memset(rb, 0, sizeof(rb));
+       if (password_filename && password_length > 0) {
+               int fd = open(password_filename, O_RDONLY);
+               if (fd < 0) {
+                       vlogprintf(E_WARNING, "Warning: fail to open password file - \"%s\", %m.\n", password_filename);
+               } else {
+                       unsigned char *a = talloc0(password_length);
+                       int l = read(fd, a, password_length);
+                       if (l < 0) {
+                               vlogprintf(E_WARNING, "Warning: fail to read password file - \"%s\", %m.\n", password_filename);
+                       } else {
+                               vlogprintf(E_DEBUG, "read %d bytes from password file.\n", l);
+                               RAND_add(a, l, l);
+                       }
+                       close(fd);
+                       tfree_secure(a, password_length);
+               }
+       }
+       TLS->BN_ctx = BN_CTX_new();
+       ensure_ptr(TLS->BN_ctx);
+}
+
+int tgl_serialize_bignum(BIGNUM *b, char *buffer, int maxlen)
+{
+       int itslen = BN_num_bytes(b);
+       int reqlen;
+       if (itslen < 254) {
+               reqlen = itslen + 1;
+       } else {
+               reqlen = itslen + 4;
+       }
+       int newlen =(reqlen + 3) & -4;
+       int pad = newlen - reqlen;
+       reqlen = newlen;
+       if (reqlen > maxlen) {
+               return -reqlen;
+       }
+       if (itslen < 254) {
+               *buffer++ = itslen;
+       } else {
+               *(int *)buffer =(itslen << 8) + 0xfe;
+               buffer += 4;
+       }
+       int l = BN_bn2bin(b,(unsigned char *)buffer);
+       assert(l == itslen);
+       buffer += l;
+       while(pad --> 0) {
+               *buffer++ = 0;
+       }
+       return reqlen;
+}
+
+
+long long tgl_do_compute_rsa_key_fingerprint(RSA *key)
+{
+       static char tempbuff[4096];
+       static unsigned char sha[20];
+       assert(key->n && key->e);
+       int l1 = tgl_serialize_bignum(key->n, tempbuff, 4096);
+       assert(l1 > 0);
+       int l2 = tgl_serialize_bignum(key->e, tempbuff + l1, 4096 - l1);
+       assert(l2 > 0 && l1 + l2 <= 4096);
+       SHA1((unsigned char *)tempbuff, l1 + l2, sha);
+       return *(long long *)(sha + 12);
+}
+
+void tgl_out_cstring(const char *str, long len)
+{
+       assert(len >= 0 && len <(1 << 24));
+       assert((char *) packet_ptr + len + 8 <(char *)(packet_buffer + PACKET_BUFFER_SIZE));
+       char *dest =(char *) packet_ptr;
+       if (len < 254) {
+               *dest++ = len;
+       } else {
+               *packet_ptr =(len << 8) + 0xfe;
+               dest += 4;
+       }
+       memcpy(dest, str, len);
+       dest += len;
+       while((long) dest & 3) {
+               *dest++ = 0;
+       }
+       packet_ptr =(int *) dest;
+}
+
+void tgl_out_cstring_careful(const char *str, long len)
+{
+       assert(len >= 0 && len <(1 << 24));
+       assert((char *) packet_ptr + len + 8 <(char *)(packet_buffer + PACKET_BUFFER_SIZE));
+       char *dest =(char *) packet_ptr;
+       if (len < 254) {
+               dest++;
+               if (dest != str) {
+                       memmove(dest, str, len);
+               }
+               dest[-1] = len;
+       } else {
+               dest += 4;
+               if (dest != str) {
+                       memmove(dest, str, len);
+               }
+               *packet_ptr =(len << 8) + 0xfe;
+       }
+       dest += len;
+       while((long) dest & 3) {
+               *dest++ = 0;
+       }
+       packet_ptr =(int *) dest;
+}
+
+
+void tgl_out_data(const void *data, long len)
+{
+       assert(len >= 0 && len <(1 << 24) && !(len & 3));
+       assert((char *) packet_ptr + len + 8 <(char *)(packet_buffer + PACKET_BUFFER_SIZE));
+       memcpy(packet_ptr, data, len);
+       packet_ptr += len >> 2;
+}
+
+int *tgl_in_ptr, *tgl_in_end;
+
+int tgl_fetch_bignum(BIGNUM *x)
+{
+       int l = prefetch_strlen();
+       if (l < 0) {
+               return l;
+       }
+       char *str = fetch_str(l);
+       assert(BN_bin2bn((unsigned char *) str, l, x) == x);
+       return l;
+}
+
+int tgl_pad_rsa_encrypt(struct tgl_state *TLS, char *from, int from_len, char *to, int size, BIGNUM *N, BIGNUM *E)
+{
+       int pad =(255000 - from_len - 32) % 255 + 32;
+       int chunks =(from_len + pad) / 255;
+       int bits = BN_num_bits(N);
+       assert(bits >= 2041 && bits <= 2048);
+       assert(from_len > 0 && from_len <= 2550);
+       assert(size >= chunks * 256);
+       assert(RAND_pseudo_bytes((unsigned char *) from + from_len, pad) >= 0);
+       int i;
+       BIGNUM x, y;
+       BN_init(&x);
+       BN_init(&y);
+       rsa_encrypted_chunks += chunks;
+       for (i = 0; i < chunks; i++) {
+               BN_bin2bn((unsigned char *) from, 255, &x);
+               assert(BN_mod_exp(&y, &x, E, N, TLS->BN_ctx) == 1);
+               unsigned l = 256 - BN_num_bytes(&y);
+               assert(l <= 256);
+               memset(to, 0, l);
+               BN_bn2bin(&y,(unsigned char *) to + l);
+               to += 256;
+       }
+       BN_free(&x);
+       BN_free(&y);
+       return chunks * 256;
+}
+
+int tgl_pad_rsa_decrypt(struct tgl_state *TLS, char *from, int from_len, char *to, int size, BIGNUM *N, BIGNUM *D)
+{
+       if (from_len < 0 || from_len > 0x1000 ||(from_len & 0xff)) {
+               return -1;
+       }
+       int chunks =(from_len >> 8);
+       int bits = BN_num_bits(N);
+       assert(bits >= 2041 && bits <= 2048);
+       assert(size >= chunks * 255);
+       int i;
+       BIGNUM x, y;
+       BN_init(&x);
+       BN_init(&y);
+       for (i = 0; i < chunks; i++) {
+               ++rsa_decrypted_chunks;
+               BN_bin2bn((unsigned char *) from, 256, &x);
+               assert(BN_mod_exp(&y, &x, D, N, TLS->BN_ctx) == 1);
+               int l = BN_num_bytes(&y);
+               if (l > 255) {
+                       BN_free(&x);
+                       BN_free(&y);
+                       return -1;
+               }
+               assert(l >= 0 && l <= 255);
+               memset(to, 0, 255 - l);
+               BN_bn2bin(&y,(unsigned char *) to + 255 - l);
+               to += 255;
+       }
+       BN_free(&x);
+       BN_free(&y);
+       return chunks * 255;
+}
+
+static unsigned char aes_key_raw[32], aes_iv[32];
+static AES_KEY aes_key;
+
+void tgl_init_aes_unauth(const char server_nonce[16], const char hidden_client_nonce[32], int encrypt)
+{
+       static unsigned char buffer[64], hash[20];
+       memcpy(buffer, hidden_client_nonce, 32);
+       memcpy(buffer + 32, server_nonce, 16);
+       SHA1(buffer, 48, aes_key_raw);
+       memcpy(buffer + 32, hidden_client_nonce, 32);
+       SHA1(buffer, 64, aes_iv + 8);
+       memcpy(buffer, server_nonce, 16);
+       memcpy(buffer + 16, hidden_client_nonce, 32);
+       SHA1(buffer, 48, hash);
+       memcpy(aes_key_raw + 20, hash, 12);
+       memcpy(aes_iv, hash + 12, 8);
+       memcpy(aes_iv + 28, hidden_client_nonce, 4);
+       if (encrypt == AES_ENCRYPT) {
+               AES_set_encrypt_key(aes_key_raw, 32*8, &aes_key);
+       } else {
+               AES_set_decrypt_key(aes_key_raw, 32*8, &aes_key);
+       }
+       memset(aes_key_raw, 0, sizeof(aes_key_raw));
+}
+
+void tgl_init_aes_auth(char auth_key[192], char msg_key[16], int encrypt)
+{
+       static unsigned char buffer[48], hash[20];
+       //  sha1_a = SHA1(msg_key + substr(auth_key, 0, 32));
+       //  sha1_b = SHA1(substr(auth_key, 32, 16) + msg_key + substr(auth_key, 48, 16));
+       //  sha1_с = SHA1(substr(auth_key, 64, 32) + msg_key);
+       //  sha1_d = SHA1(msg_key + substr(auth_key, 96, 32));
+       //  aes_key = substr(sha1_a, 0, 8) + substr(sha1_b, 8, 12) + substr(sha1_c, 4, 12);
+       //  aes_iv = substr(sha1_a, 8, 12) + substr(sha1_b, 0, 8) + substr(sha1_c, 16, 4) + substr(sha1_d, 0, 8);
+       memcpy(buffer, msg_key, 16);
+       memcpy(buffer + 16, auth_key, 32);
+       SHA1(buffer, 48, hash);
+       memcpy(aes_key_raw, hash, 8);
+       memcpy(aes_iv, hash + 8, 12);
+
+       memcpy(buffer, auth_key + 32, 16);
+       memcpy(buffer + 16, msg_key, 16);
+       memcpy(buffer + 32, auth_key + 48, 16);
+       SHA1(buffer, 48, hash);
+       memcpy(aes_key_raw + 8, hash + 8, 12);
+       memcpy(aes_iv + 12, hash, 8);
+
+       memcpy(buffer, auth_key + 64, 32);
+       memcpy(buffer + 32, msg_key, 16);
+       SHA1(buffer, 48, hash);
+       memcpy(aes_key_raw + 20, hash + 4, 12);
+       memcpy(aes_iv + 20, hash + 16, 4);
+
+       memcpy(buffer, msg_key, 16);
+       memcpy(buffer + 16, auth_key + 96, 32);
+       SHA1(buffer, 48, hash);
+       memcpy(aes_iv + 24, hash, 8);
+
+       if (encrypt == AES_ENCRYPT) {
+               AES_set_encrypt_key(aes_key_raw, 32*8, &aes_key);
+       } else {
+               AES_set_decrypt_key(aes_key_raw, 32*8, &aes_key);
+       }
+       memset(aes_key_raw, 0, sizeof(aes_key_raw));
+}
+
+int tgl_pad_aes_encrypt(char *from, int from_len, char *to, int size)
+{
+       int padded_size =(from_len + 15) & -16;
+       assert(from_len > 0 && padded_size <= size);
+       if (from_len < padded_size) {
+               assert(RAND_pseudo_bytes((unsigned char *) from + from_len, padded_size - from_len) >= 0);
+       }
+       AES_ige_encrypt((unsigned char *) from,(unsigned char *) to, padded_size, &aes_key, aes_iv, AES_ENCRYPT);
+       return padded_size;
+}
+
+int tgl_pad_aes_decrypt(char *from, int from_len, char *to, int size)
+{
+       if (from_len <= 0 || from_len > size ||(from_len & 15)) {
+               return -1;
+       }
+       AES_ige_encrypt((unsigned char *) from,(unsigned char *) to, from_len, &aes_key, aes_iv, AES_DECRYPT);
+       return from_len;
+}
+
+
diff --git a/tg-engine-service/mtprotocol/mtproto-common.h b/tg-engine-service/mtprotocol/mtproto-common.h
new file mode 100644 (file)
index 0000000..f2f553c
--- /dev/null
@@ -0,0 +1,398 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or(at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Nikolay Durov, Andrey Lopatin 2012-2013
+              Vitaly Valtman 2013-2015
+ */
+#ifndef __MTPROTO_COMMON_H__
+#define __MTPROTO_COMMON_H__
+
+#include <string.h>
+#include <openssl/rsa.h>
+#include <openssl/bn.h>
+#include <openssl/aes.h>
+#include <stdio.h>
+#include <assert.h>
+#include "tools.h"
+#include "auto/constants.h"
+#include "tgl.h"
+#include "tgl-inner.h"
+
+/* DH key exchange protocol data structures */
+#define        CODE_req_pq                     0x60469778
+#define CODE_resPQ                     0x05162463
+#define CODE_req_DH_params             0xd712e4be
+#define CODE_p_q_inner_data            0x83c95aec
+#define CODE_p_q_inner_data_temp               0x3c6a84d4
+#define CODE_server_DH_inner_data      0xb5890dba
+#define CODE_server_DH_params_fail     0x79cb045d
+#define CODE_server_DH_params_ok       0xd0e8075c
+#define CODE_set_client_DH_params      0xf5045f1f
+#define CODE_client_DH_inner_data      0x6643b654
+#define CODE_dh_gen_ok                 0x3bcbf734
+#define CODE_dh_gen_retry              0x46dc1fb9
+#define CODE_dh_gen_fail               0xa69dae02
+#define CODE_bind_auth_key_inner 0x75a3f765
+
+/* service messages */
+#define CODE_rpc_result                        0xf35c6d01
+#define CODE_rpc_error                 0x2144ca19
+#define CODE_msg_container             0x73f1f8dc
+#define CODE_msg_copy                  0xe06046b2
+#define CODE_msgs_ack                  0x62d6b459
+#define CODE_bad_msg_notification      0xa7eff811
+#define        CODE_bad_server_salt            0xedab447b
+#define CODE_msgs_state_req            0xda69fb52
+#define CODE_msgs_state_info           0x04deb57d
+#define CODE_msgs_all_info             0x8cc0d131
+#define CODE_new_session_created       0x9ec20908
+#define CODE_msg_resend_req            0x7d861a08
+#define CODE_ping                      0x7abe77ec
+#define CODE_pong                      0x347773c5
+#define CODE_destroy_session           0xe7512126
+#define CODE_destroy_session_ok                0xe22045fc
+#define CODE_destroy_session_none              0x62d350c9
+#define CODE_destroy_sessions          0x9a6face8
+#define CODE_destroy_sessions_res      0xa8164668
+#define        CODE_get_future_salts           0xb921bd04
+#define        CODE_future_salt                0x0949d9dc
+#define        CODE_future_salts               0xae500895
+#define        CODE_rpc_drop_answer            0x58e4a740
+#define CODE_rpc_answer_unknown                0x5e2ad36e
+#define CODE_rpc_answer_dropped_running        0xcd78e586
+#define CODE_rpc_answer_dropped                0xa43ad8b7
+#define        CODE_msg_detailed_info          0x276d3ec6
+#define        CODE_msg_new_detailed_info      0x809db6df
+#define CODE_ping_delay_disconnect     0xf3427b8c
+#define CODE_gzip_packed 0x3072cfa1
+#define CODE_input_peer_notify_settings_old 0x3cf4b1be
+#define CODE_peer_notify_settings_old 0xddbcd4a5
+#define CODE_user_profile_photo_old 0x990d1493
+#define CODE_config_old 0x232d5905
+#define CODE_msg_new_detailed_info 0x809db6df
+#define CODE_msg_detailed_info 0x276d3ec6
+
+/* not really a limit, for struct encrypted_message only */
+// #define MAX_MESSAGE_INTS    16384
+
+#define MAX_MESSAGE_INTS       1048576
+#define MAX_PROTO_MESSAGE_INTS 1048576
+#define PACKET_BUFFER_SIZE     (16384 * 100 + 16) // temp fix
+#pragma pack(push,4)
+
+struct encrypted_message {
+       // unencrypted header
+       long long auth_key_id;
+       char msg_key[16];
+       // encrypted part, starts with encrypted header
+       long long server_salt;
+       long long session_id;
+       // long long auth_key_id2; // removed
+       // first message follows
+       long long msg_id;
+       int seq_no;
+       int msg_len;   // divisible by 4
+       int message[MAX_MESSAGE_INTS];
+};
+
+#pragma pack(pop)
+
+//BN_CTX *BN_ctx;
+
+void tgl_prng_seed(struct tgl_state *TLS, const char *password_filename, int password_length);
+int tgl_serialize_bignum(BIGNUM *b, char *buffer, int maxlen);
+long long tgl_do_compute_rsa_key_fingerprint(RSA *key);
+
+#define packet_buffer tgl_packet_buffer
+#define packet_ptr tgl_packet_ptr
+
+extern int *tgl_packet_buffer;
+extern int *tgl_packet_ptr;
+
+static inline void out_ints(const int *what, int len)
+{
+       assert(packet_ptr + len <= packet_buffer + PACKET_BUFFER_SIZE);
+       memcpy(packet_ptr, what, len * 4);
+       packet_ptr += len;
+}
+
+
+static inline void out_int(int x)
+{
+       assert(packet_ptr + 1 <= packet_buffer + PACKET_BUFFER_SIZE);
+       *packet_ptr++ = x;
+}
+
+static inline void out_long(long long x)
+{
+       assert(packet_ptr + 2 <= packet_buffer + PACKET_BUFFER_SIZE);
+       *(long long *)packet_ptr = x;
+       packet_ptr += 2;
+}
+
+static inline void out_double(double x)
+{
+       assert(packet_ptr + 2 <= packet_buffer + PACKET_BUFFER_SIZE);
+       *(double *)packet_ptr = x;
+       packet_ptr += 2;
+}
+
+static inline void clear_packet(void)
+{
+       packet_ptr = packet_buffer;
+}
+
+void tgl_out_cstring(const char *str, long len);
+void tgl_out_cstring_careful(const char *str, long len);
+void tgl_out_data(const void *data, long len);
+
+#define out_cstring tgl_out_cstring
+#define out_cstring_careful tgl_out_cstring_careful
+#define out_data tgl_out_data
+
+static inline void out_string(const char *str)
+{
+       out_cstring(str, strlen(str));
+}
+
+static inline void out_bignum(BIGNUM *n)
+{
+       int l = tgl_serialize_bignum(n,(char *)packet_ptr,(PACKET_BUFFER_SIZE -(packet_ptr - packet_buffer)) * 4);
+       assert(l > 0);
+       packet_ptr += l >> 2;
+}
+
+#define in_ptr tgl_in_ptr
+#define in_end tgl_in_end
+extern int *tgl_in_ptr, *tgl_in_end;
+
+//void fetch_pts(void);
+//void fetch_qts(void);
+//void fetch_date(void);
+//void fetch_seq(void);
+static inline int prefetch_strlen(void)
+{
+       if(in_ptr >= in_end) {
+               return -1;
+       }
+       unsigned l = *in_ptr;
+       if((l & 0xff) < 0xfe) {
+               l &= 0xff;
+               return(in_end >= in_ptr +(l >> 2) + 1) ?(int)l : -1;
+       } else if((l & 0xff) == 0xfe) {
+               l >>= 8;
+               return(l >= 254 && in_end >= in_ptr +((l + 7) >> 2)) ?(int)l : -1;
+       } else {
+               return -1;
+       }
+}
+
+static inline char *fetch_str(int len)
+{
+       assert(len >= 0);
+       if(len < 254) {
+               char *str =(char *) in_ptr + 1;
+               in_ptr += 1 +(len >> 2);
+               return str;
+       } else {
+               char *str =(char *) in_ptr + 4;
+               in_ptr +=(len + 7) >> 2;
+               return str;
+       }
+} 
+
+static inline char *fetch_str_dup(void)
+{
+       int l = prefetch_strlen();
+       assert(l >= 0);
+       int i;
+       char *s = fetch_str(l);
+       for(i = 0; i < l; i++) {
+               if(!s[i]) { break; }
+       }
+       char *r = talloc(i + 1);
+       memcpy(r, s, i);
+       r[i] = 0;
+       return r;
+}
+
+static inline int fetch_update_str(char **s)
+{
+       if(!*s) {
+               *s = fetch_str_dup();
+               return 1;
+       }
+       int l = prefetch_strlen();
+       char *r = fetch_str(l);
+       if(memcmp(*s, r, l) ||(*s)[l]) {
+               tfree_str(*s);
+               *s = talloc(l + 1);
+               memcpy(*s, r, l);
+               (*s)[l] = 0;
+               return 1;
+       }
+       return 0;
+}
+
+static inline int fetch_update_int(int *value)
+{
+       if(*value == *in_ptr) {
+               in_ptr ++;
+               return 0;
+       } else {
+               *value = *(in_ptr ++);
+               return 1;
+       }
+}
+
+static inline int fetch_update_long(long long *value)
+{
+       if(*value == *(long long *)in_ptr) {
+               in_ptr += 2;
+               return 0;
+       } else {
+               *value = *(long long *)(in_ptr);
+               in_ptr += 2;
+               return 1;
+       }
+}
+
+static inline int set_update_int(int *value, int new_value)
+{
+       if(*value == new_value) {
+               return 0;
+       } else {
+               *value = new_value;
+               return 1;
+       }
+}
+
+static inline void fetch_skip(int n)
+{
+       in_ptr += n;
+       assert(in_ptr <= in_end);
+}
+
+static inline void fetch_skip_str(void)
+{
+       int l = prefetch_strlen();
+       assert(l >= 0);
+       fetch_str(l);
+}
+
+static inline long have_prefetch_ints(void)
+{
+       return in_end - in_ptr;
+}
+
+int tgl_fetch_bignum(BIGNUM *x);
+#define fetch_bignum tgl_fetch_bignum
+
+static inline int fetch_int(void)
+{
+       assert(in_ptr + 1 <= in_end);
+       return *(in_ptr ++);
+}
+
+static inline int fetch_bool(void)
+{
+       assert(in_ptr + 1 <= in_end);
+       assert(*(in_ptr) ==(int)CODE_bool_true || *(in_ptr) ==(int)CODE_bool_false);
+       return *(in_ptr ++) ==(int)CODE_bool_true;
+}
+
+static inline int prefetch_int(void)
+{
+       assert(in_ptr < in_end);
+       return *(in_ptr);
+}
+
+static inline void prefetch_data(void *data, int size)
+{
+       assert(in_ptr +(size >> 2) <= in_end);
+       memcpy(data, in_ptr, size);
+}
+
+static inline void fetch_data(void *data, int size)
+{
+       assert(in_ptr +(size >> 2) <= in_end);
+       memcpy(data, in_ptr, size);
+       assert(!(size & 3));
+       in_ptr +=(size >> 2);
+}
+
+static inline long long fetch_long(void)
+{
+       assert(in_ptr + 2 <= in_end);
+       long long r = *(long long *)in_ptr;
+       in_ptr += 2;
+       return r;
+}
+
+static inline double fetch_double(void)
+{
+       assert(in_ptr + 2 <= in_end);
+       double r = *(double *)in_ptr;
+       in_ptr += 2;
+       return r;
+}
+
+static inline void fetch_ints(void *data, int count)
+{
+       assert(in_ptr + count <= in_end);
+       memcpy(data, in_ptr, 4 * count);
+       in_ptr += count;
+}
+
+static inline void fetch256(void *buf)
+{
+       int l = prefetch_strlen();
+       assert(l >= 0);
+       char *s = fetch_str(l);
+       if(l < 256) {
+               memcpy(buf + 256 - l, s, l);
+               memset(buf, 0, 256 - l);
+       } else {
+               memcpy(buf, s +(l - 256), 256);
+       }
+}
+
+static inline int in_remaining(void)
+{
+       return 4 *(in_end - in_ptr);
+}
+
+//int get_random_bytes(unsigned char *buf, int n);
+
+int tgl_pad_rsa_encrypt(struct tgl_state *TLS, char *from, int from_len, char *to, int size, BIGNUM *N, BIGNUM *E);
+int tgl_pad_rsa_decrypt(struct tgl_state *TLS, char *from, int from_len, char *to, int size, BIGNUM *N, BIGNUM *D);
+
+//extern long long rsa_encrypted_chunks, rsa_decrypted_chunks;
+
+//extern unsigned char aes_key_raw[32], aes_iv[32];
+//extern AES_KEY aes_key;
+
+void tgl_init_aes_unauth(const char server_nonce[16], const char hidden_client_nonce[32], int encrypt);
+void tgl_init_aes_auth(char auth_key[192], char msg_key[16], int encrypt);
+int tgl_pad_aes_encrypt(char *from, int from_len, char *to, int size);
+int tgl_pad_aes_decrypt(char *from, int from_len, char *to, int size);
+
+#ifdef __MACH__
+#define CLOCK_REALTIME 0
+#define CLOCK_MONOTONIC 1
+#endif
+#endif
diff --git a/tg-engine-service/mtprotocol/mtproto-utils.c b/tg-engine-service/mtprotocol/mtproto-utils.c
new file mode 100644 (file)
index 0000000..1098dcb
--- /dev/null
@@ -0,0 +1,179 @@
+
+#include <openssl/bn.h>
+#include "tgl.h"
+#include "tools.h"
+
+static unsigned long long gcd(unsigned long long a, unsigned long long b)
+{
+       return b ? gcd(b, a % b) : a;
+}
+
+static int check_prime(struct tgl_state *TLS, BIGNUM *p)
+{
+       int r = BN_is_prime(p, BN_prime_checks, 0, TLS->BN_ctx, 0);
+       ensure(r >= 0);
+       return r;
+}
+
+// Complete set of checks see at https://core.telegram.org/mtproto/security_guidelines
+// Checks that(p,g) is acceptable pair for DH
+
+int tglmp_check_DH_params(struct tgl_state *TLS, BIGNUM *p, int g)
+{
+       if (g < 2 || g > 7) {
+               return -1;
+       }
+       if (BN_num_bits(p) != 2048) {
+               return -1;
+       }
+
+       BIGNUM *t = BN_new();
+
+       BIGNUM *dh_g = BN_new();
+
+       ensure(BN_set_word(dh_g, 4 * g));
+       ensure(BN_mod(t, p, dh_g, TLS->BN_ctx));
+       int x = BN_get_word(t);
+       assert(x >= 0 && x < 4 * g);
+
+       BN_free(dh_g);
+
+       int res = 0;
+       switch (g) {
+       case 2:
+               if (x != 7) { res = -1; }
+               break;
+       case 3:
+               if (x % 3 != 2) { res = -1; }
+               break;
+       case 4:
+               break;
+       case 5:
+               if (x % 5 != 1 && x % 5 != 4) { res = -1; }
+               break;
+       case 6:
+               if (x != 19 && x != 23) { res = -1; }
+               break;
+       case 7:
+               if (x % 7 != 3 && x % 7 != 5 && x % 7 != 6) { res = -1; }
+               break;
+       }
+
+       if (res < 0 || !check_prime(TLS, p)) {
+               BN_free(t);
+               return -1;
+       }
+
+       BIGNUM *b = BN_new();
+       ensure(BN_set_word(b, 2));
+       ensure(BN_div(t, 0, p, b, TLS->BN_ctx));
+       if (!check_prime(TLS, t)) {
+               res = -1;
+       }
+       BN_free(b);
+       BN_free(t);
+       return res;
+}
+
+// checks that g_a is acceptable for DH
+int tglmp_check_g_a(struct tgl_state *TLS, BIGNUM *p, BIGNUM *g_a)
+{
+       if (BN_num_bytes(g_a) > 256) {
+               return -1;
+       }
+       if (BN_num_bits(g_a) < 2048 - 64) {
+               return -1;
+       }
+       if (BN_cmp(p, g_a) <= 0) {
+               return -1;
+       }
+
+       BIGNUM *dif = BN_new();
+       BN_sub(dif, p, g_a);
+
+       if (BN_num_bits(dif) < 2048 - 64) {
+               BN_free(dif);
+               return -1;
+       }
+
+       BN_free(dif);
+       return 0;
+}
+
+static unsigned long long BN2ull(BIGNUM *b)
+{
+       if (sizeof(BN_ULONG) == 8) {
+               return BN_get_word(b);
+       } else {
+               unsigned int tmp[2];
+               memset(tmp, 0, 8);
+               BN_bn2bin(b,(void *)tmp);
+               return __builtin_bswap32(tmp[0]) *(1ll << 32) | __builtin_bswap32(tmp[1]);
+       }
+}
+
+static void ull2BN(BIGNUM *b, unsigned long long val)
+{
+       if (sizeof(BN_ULONG) == 8 || val <(1ll << 32)) {
+               BN_set_word(b, val);
+       } else {
+               unsigned int tmp[2];
+               tmp[0] = __builtin_bswap32(val >> 32);
+               tmp[1] = __builtin_bswap32((unsigned)val);
+               BN_bin2bn((void *)tmp, 8, b);
+       }
+}
+
+int bn_factorize(BIGNUM *pq, BIGNUM *p, BIGNUM *q)
+{
+       // Should work in any case
+       // Rewrite this code
+       unsigned long long what = BN2ull(pq);
+       int it = 0;
+       unsigned long long g = 0;
+       int i;
+       for (i = 0; i < 3 || it < 1000; i++) {
+               int q =((lrand48() & 15) + 17) % what;
+               unsigned long long x =(long long)lrand48() %(what - 1) + 1, y = x;
+               int lim = 1 <<(i + 18);
+               int j;
+               for (j = 1; j < lim; j++) {
+                       ++it;
+                       unsigned long long a = x, b = x, c = q;
+                       while(b) {
+                               if (b & 1) {
+                                       c += a;
+                                       if (c >= what) {
+                                               c -= what;
+                                       }
+                               }
+                               a += a;
+                               if (a >= what) {
+                                       a -= what;
+                               }
+                               b >>= 1;
+                       }
+                       x = c;
+                       unsigned long long z = x < y ? what + x - y : x - y;
+                       g = gcd(z, what);
+                       if (g != 1) {
+                               break;
+                       }
+                       if (!(j &(j - 1))) {
+                               y = x;
+                       }
+               }
+               if (g > 1 && g < what)
+                       break;
+       }
+
+       assert(g > 1 && g < what);
+       unsigned long long p1 = g;
+       unsigned long long p2 = what / g;
+       if (p1 > p2) {
+               unsigned long long t = p1; p1 = p2; p2 = t;
+       }
+       ull2BN(p, p1);
+       ull2BN(q, p2);
+       return 0;
+}
diff --git a/tg-engine-service/mtprotocol/mtproto-utils.h b/tg-engine-service/mtprotocol/mtproto-utils.h
new file mode 100644 (file)
index 0000000..80db567
--- /dev/null
@@ -0,0 +1,10 @@
+#ifndef __MTPROTO_UTILS_H__
+#define __MTPROTO_UTILS_H__
+
+#include <openssl/bn.h>
+
+int tglmp_check_DH_params(struct tgl_state *TLS, BIGNUM *p, int g);
+int tglmp_check_g_a(struct tgl_state *TLS, BIGNUM *p, BIGNUM *g_a);
+int bn_factorize(BIGNUM *pq, BIGNUM *p, BIGNUM *q);
+
+#endif
diff --git a/tg-engine-service/mtprotocol/no-preview.h b/tg-engine-service/mtprotocol/no-preview.h
new file mode 100644 (file)
index 0000000..cf2651d
--- /dev/null
@@ -0,0 +1,106 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Vitaly Valtman 2013-2015
+*/
+
+// Just sample jpg file 90x90
+
+int thumb_file_size = (82 * 6 - 2) * 4;
+int thumb_file [] = {
+0xe0ffd8ff, 0x464a1000, 0x01004649, 0x64000101, 0x00006400, 0xa002e2ff,
+0x5f434349, 0x464f5250, 0x00454c49, 0x00000101, 0x636c9002, 0x3004736d,
+0x6e6d0000, 0x47527274, 0x59582042, 0xdd07205a, 0x04000b00, 0x1b001600,
+0x63612400, 0x50417073, 0x00004c50, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x0100d6f6, 0x00000000, 0x636c2dd3,
+0x0000736d, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x65640b00, 0x00006373, 0x00000801, 0x70633800, 0x00007472, 0x00004001,
+0x74774e00, 0x00007470, 0x00009001, 0x68631400, 0x00006461, 0x0000a401,
+0x58722c00, 0x00005a59, 0x0000d001, 0x58621400, 0x00005a59, 0x0000e401,
+0x58671400, 0x00005a59, 0x0000f801, 0x54721400, 0x00004352, 0x00000c02,
+0x54672000, 0x00004352, 0x00002c02, 0x54622000, 0x00004352, 0x00004c02,
+0x68632000, 0x00006d72, 0x00006c02, 0x6c6d2400, 0x00006375, 0x00000000,
+0x00000100, 0x6e650c00, 0x00005355, 0x00001c00, 0x73001c00, 0x47005200,
+0x20004200, 0x75006200, 0x6c006900, 0x2d007400, 0x6e006900, 0x6c6d0000,
+0x00006375, 0x00000000, 0x00000100, 0x6e650c00, 0x00005355, 0x00003200,
+0x4e001c00, 0x20006f00, 0x6f006300, 0x79007000, 0x69007200, 0x68006700,
+0x2c007400, 0x75002000, 0x65007300, 0x66002000, 0x65007200, 0x6c006500,
+0x00007900, 0x59580000, 0x0000205a, 0x00000000, 0x0100d6f6, 0x00000000,
+0x66732dd3, 0x00003233, 0x01000000, 0x00004a0c, 0xffffe305, 0x00002af3,
+0x00009b07, 0xffff87fd, 0xffffa2fb, 0x0000a3fd, 0x0000d803, 0x595894c0,
+0x0000205a, 0x00000000, 0x0000946f, 0x0000ee38, 0x59589003, 0x0000205a,
+0x00000000, 0x00009d24, 0x0000830f, 0x5958beb6, 0x0000205a, 0x00000000,
+0x0000a562, 0x000090b7, 0x6170de18, 0x00006172, 0x03000000, 0x02000000,
+0x00006666, 0x0000a7f2, 0x0000590d, 0x0000d013, 0x61705b0a, 0x00006172,
+0x03000000, 0x02000000, 0x00006666, 0x0000a7f2, 0x0000590d, 0x0000d013,
+0x61705b0a, 0x00006172, 0x03000000, 0x02000000, 0x00006666, 0x0000a7f2,
+0x0000590d, 0x0000d013, 0x68635b0a, 0x00006d72, 0x03000000, 0x00000000,
+0x0000d7a3, 0x00007b54, 0x0000cd4c, 0x00009a99, 0x00006626, 0xdbff5c0f,
+0x14004300, 0x0f120f0e, 0x1112140d, 0x14161712, 0x21331f18, 0x1f1c1c1f,
+0x252f2d3f, 0x4e414a33, 0x4841494d, 0x765c5246, 0x6f575264, 0x66484658,
+0x7a6f688c, 0x8485847d, 0x9b91634f, 0x769a808f, 0xff7f8481, 0x014300db,
+0x1f171716, 0x213c1f1b, 0x547f3c21, 0x7f7f5448, 0x7f7f7f7f, 0x7f7f7f7f,
+0x7f7f7f7f, 0x7f7f7f7f, 0x7f7f7f7f, 0x7f7f7f7f, 0x7f7f7f7f, 0x7f7f7f7f,
+0x7f7f7f7f, 0x7f7f7f7f, 0x7f7f7f7f, 0x7f7f7f7f, 0x1100c0ff, 0x005a0008,
+0x2201035a, 0x01110200, 0xff011103, 0x001900c4, 0x01010101, 0x00000101,
+0x00000000, 0x00000000, 0x02030400, 0xc4ff0605, 0x00103600, 0x02010401,
+0x06050304, 0x00000306, 0x01000000, 0x11030200, 0x05211204, 0x13514131,
+0x32146122, 0x23918171, 0x72423424, 0x432515a1, 0xa2827444, 0xc4fff0b3,
+0x01011400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1400c4ff,
+0x00000111, 0x00000000, 0x00000000, 0x00000000, 0xdaff0000, 0x01030c00,
+0x03110200, 0x003f0011, 0x404434fb, 0xbcb4875c, 0x006b38b0, 0x03dcdb12,
+0xf4637f74, 0xe519f153, 0x09d7c5c7, 0x47d29160, 0x20692f18, 0xd06d786a,
+0x53f7f922, 0x17b3e260, 0x2fe8668c, 0x1786a473, 0x9775efbd, 0xe917e43a,
+0x1d0a1bb0, 0x114d0f82, 0x14651110, 0x35f299ed, 0xe9b09680, 0xf5a4fc2f,
+0xe975bd03, 0xb506737b, 0x04444440, 0x5c444044, 0x8e8dedbd, 0xc61adc7b,
+0x689c738b, 0x92a0dc01, 0x58e2b77f, 0x7bfb37d1, 0xb5b5e79d, 0xdbf968cc,
+0xead3f48d, 0x38ed1313, 0xdea77c86, 0xae089963, 0xc743435a, 0x403fe4ce,
+0x392ee1b9, 0xed39e718, 0xd6517e2d, 0x7fc4aa03, 0xb7ad7590, 0x77e7e6ab,
+0x34bf705d, 0x7c77ca53, 0x3dea1299, 0x7fb0bcf4, 0x241fadc5, 0x95a7a816,
+0x13fbe6f3, 0x3182b135, 0xd1b4b224, 0x1b0d48a2, 0xbf9d26d8, 0x82dc3640,
+0x63569a2a, 0xbbd224c3, 0xb9b4714c, 0x1680aec6, 0x3d311856, 0x9b59be91,
+0x09876ca6, 0x61d86564, 0x5a9f06d2, 0x36f51b0d, 0x8682e476, 0xacb1b131,
+0xd1584363, 0x00456b4d, 0x22d2053b, 0x22202202, 0xf3f30222, 0xe3e513e5,
+0xf1e6e1f0, 0x2380496e, 0x5fdcdb68, 0x549b3a27, 0x825e6a6c, 0x6522028b,
+0xaf91ccc8, 0x341cf26b, 0x58dbc4b5, 0xf2289add, 0x0854ddbd, 0x0b9247d5,
+0xf02b5c54, 0x3f917f92, 0xaf56affd, 0xe3760637, 0x05cebde0, 0xed4c76ce,
+0x3cef1b63, 0x7fd8aff8, 0xa0c902ea, 0x7e730d0a, 0x435834f3, 0x26edbb76,
+0xd3ec00fd, 0x76d48efa, 0xa8560f2d, 0x0e766331, 0xd319993c, 0x20243209,
+0x61b7e6c8, 0x998331d0, 0x640ee802, 0x47a3d493, 0xfab99413, 0x4fd871f1,
+0xe9443792, 0x627e051c, 0xd8f3051c, 0x2f28f558, 0x64b51745, 0x1b2bfee3,
+0xb8783953, 0x9900fff6, 0xd8176a65, 0x5a3bf56a, 0x1b331fdb, 0x64b3572f,
+0xd59a3643, 0xaf3abce1, 0x11dd20bd, 0x01111110, 0x5c141011, 0xb3e3083f,
+0xd9b19cc4, 0x17edb20e, 0xa78e9aa1, 0x4ef4de06, 0x00c0bfe7, 0x7e1e442d,
+0x9221fe38, 0xedb5c7dc, 0x6338078a, 0x62495b8d, 0xc11d9b8c, 0x49e81b16,
+0x51d02bea, 0x3eb86d70, 0xc8bc4f13, 0xa10ec758, 0xd40751c0, 0x5ac94710,
+0xc4c8b080, 0x95492b83, 0x975ee696, 0xb7bd96b4, 0x17379cce, 0x82e856e8,
+0xe4c2c82a, 0x398e935f, 0x632437ea, 0x7c9c87d2, 0xdc1ddb7c, 0x65a80a48,
+0x2309f164, 0x51fab475, 0x081dc11d, 0xda45573b, 0x6622f3f3, 0x48f1b214,
+0x676c4edb, 0x243468c7, 0x00ffde60, 0xf1630350, 0xa0076c1d, 0x8f2c0c8b,
+0x2383c26b, 0x361a8f4e, 0xaceea6c9, 0x01dd5a5d, 0x11111011, 0xc3780c04,
+0xbf093ee2, 0xc7972c0b, 0x00d99040, 0xc0c20eb7, 0x659d3bd4, 0x269ab85e,
+0x468e114f, 0x11ad4fdb, 0x83d083d8, 0x8c52f4bd, 0x3c9664bf, 0xa4f9c77c,
+0x22a68876, 0xadb18784, 0xf480be83, 0x885a00ea, 0x220e0a88, 0xc303e4f6,
+0xc866e058, 0xdddbd661, 0xdf395db1, 0xbad64343, 0xe6e65b03, 0x668e81c3,
+0xad619e98, 0xeeb94563, 0xd4d19a3c, 0x3316ce95, 0x9d65f1e1, 0x3bf324fe,
+0x0e468f53, 0xc386068c, 0xa89e24f7, 0xf0c7c73b, 0xb60e391f, 0x1b8827cb,
+0x58601954, 0xc54f90f9, 0x80886ec5, 0x88088888, 0x1b7bb980, 0xb4c71c23,
+0xe6148e39, 0xb12358b8, 0xbd08225d, 0x0ffef085, 0x72b4f025, 0x635ce389,
+0xb90277e4, 0x0d05e000, 0x9bf9dbb9, 0x8e749fbc, 0x7ee6abbf, 0x4ddbf4af,
+0x728df7f3, 0x10b59adf, 0xe3c38f49, 0xb23c638a, 0xdb3d9349, 0x66899a64,
+0x00004dd5, 0xf51b5adf, 0x2220a255, 0xd9ff0f22};
diff --git a/tg-engine-service/mtprotocol/queries.c b/tg-engine-service/mtprotocol/queries.c
new file mode 100644 (file)
index 0000000..0223f97
--- /dev/null
@@ -0,0 +1,4775 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or(at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Vitaly Valtman 2013-2015
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#define _FILE_OFFSET_BITS 64
+#include <string.h>
+#include <memory.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <sys/utsname.h>
+#include "mtproto-client.h"
+#include "queries.h"
+#include "tree.h"
+#include "mtproto-common.h"
+#include "tgl-structures.h"
+#include <openssl/bn.h>
+#include <openssl/rand.h>
+#include <openssl/aes.h>
+#include <openssl/sha.h>
+#include <openssl/md5.h>
+#include "no-preview.h"
+#include "tgl-binlog.h"
+#include "updates.h"
+#include "auto.h"
+#include "tgl.h"
+#include "tg-mime-types.h"
+#include "mtproto-utils.h"
+
+#define sha1 SHA1
+
+#ifndef PATH_MAX
+#define PATH_MAX 4096
+#endif
+
+
+static void out_peer_id(struct tgl_state *TLS, tgl_peer_id_t id);
+#define QUERY_TIMEOUT 6.0
+
+#define memcmp8(a,b) memcmp((a),(b), 8)
+DEFINE_TREE (query, struct query *, memcmp8, 0);
+
+struct query *tglq_query_get(struct tgl_state *TLS, long long id)
+{
+       return tree_lookup_query(TLS->queries_tree,(void *)&id);
+}
+
+static int alarm_query(struct tgl_state *TLS, struct query *q)
+{
+       assert(q);
+       vlogprintf(E_DEBUG - 2, "Alarm query %lld\n", q->msg_id);
+
+       TLS->timer_methods->insert(q->ev, QUERY_TIMEOUT);
+
+       if (q->session->session_id == q->session_id && q->session_id) {
+               clear_packet();
+               out_int(CODE_msg_container);
+               out_int(1);
+               out_long(q->msg_id);
+               out_int(q->seq_no);
+               out_int(4 * q->data_len);
+               out_ints(q->data, q->data_len);
+
+               tglmp_encrypt_send_message(TLS, q->session->c, packet_buffer, packet_ptr - packet_buffer, q->flags & QUERY_FORCE_SEND);
+       } else {
+               q->flags &= ~QUERY_ACK_RECEIVED;
+               if (tree_lookup_query(TLS->queries_tree, q)) {
+                       TLS->queries_tree = tree_delete_query(TLS->queries_tree, q);
+               }
+               q->session = q->DC->sessions[0];
+               q->msg_id = tglmp_encrypt_send_message(TLS, q->session->c, q->data, q->data_len,(q->flags & QUERY_FORCE_SEND) | 1);
+               TLS->queries_tree = tree_insert_query(TLS->queries_tree, q, lrand48());
+               q->session_id = q->session->session_id;
+               if (!(q->session->dc->flags & 4) && !(q->flags & QUERY_FORCE_SEND)) {
+                       q->session_id = 0;
+               }
+       }
+       return 0;
+}
+
+void tglq_regen_query(struct tgl_state *TLS, long long id)
+{
+       struct query *q = tglq_query_get(TLS, id);
+       if (!q) { return; }
+       q->flags &= ~QUERY_ACK_RECEIVED;
+
+       if (!(q->session->dc->flags & 4) && !(q->flags & QUERY_FORCE_SEND)) {
+               q->session_id = 0;
+       }
+       vlogprintf(E_NOTICE, "regen query %lld\n", id);
+       TLS->timer_methods->insert(q->ev, 0.001);
+}
+
+void tglq_query_restart(struct tgl_state *TLS, long long id)
+{
+       struct query *q = tglq_query_get(TLS, id);
+       if (q) {
+               vlogprintf(E_NOTICE, "restarting query %lld\n", id);
+               TLS->timer_methods->remove(q->ev);
+               alarm_query(TLS, q);
+       }
+}
+
+static void alarm_query_gateway(struct tgl_state *TLS, void *arg)
+{
+       alarm_query(TLS, arg);
+}
+
+struct query *tglq_send_query_ex(struct tgl_state *TLS, struct tgl_dc *DC, int ints, void *data, struct query_methods *methods, void *extra, void *callback, void *callback_extra, int flags)
+{
+       assert(DC);
+       assert(DC->auth_key_id);
+
+       if (!DC->sessions[0]) {
+               tglmp_dc_create_session(TLS, DC);
+       }
+       vlogprintf(E_DEBUG, "Sending query of size %d to DC(%s:%d)\n", 4 * ints, DC->ip, DC->port);
+       struct query *q = talloc0(sizeof(*q));
+       q->data_len = ints;
+       q->data = talloc(4 * ints);
+       memcpy(q->data, data, 4 * ints);
+       q->msg_id = tglmp_encrypt_send_message(TLS, DC->sessions[0]->c, data, ints, 1 |(flags & QUERY_FORCE_SEND));
+       q->session = DC->sessions[0];
+       q->seq_no = q->session->seq_no - 1;
+       q->session_id = q->session->session_id;
+       if (!(DC->flags & 4) && !(flags & QUERY_FORCE_SEND)) {
+               q->session_id = 0;
+       }
+       vlogprintf(E_DEBUG, "Msg_id is %lld %p\n", q->msg_id, q);
+       q->methods = methods;
+       q->type = methods->type;
+       q->DC = DC;
+       q->flags = flags & QUERY_FORCE_SEND;
+       if (TLS->queries_tree) {
+               vlogprintf(E_DEBUG + 2, "%lld %lld\n", q->msg_id, TLS->queries_tree->x->msg_id);
+       }
+       TLS->queries_tree = tree_insert_query(TLS->queries_tree, q, lrand48());
+
+       q->ev = TLS->timer_methods->alloc(TLS, alarm_query_gateway, q);
+       TLS->timer_methods->insert(q->ev, QUERY_TIMEOUT);
+
+       q->extra = extra;
+       q->callback = callback;
+       q->callback_extra = callback_extra;
+       TLS->active_queries ++;
+       return q;
+}
+
+struct query *tglq_send_query(struct tgl_state *TLS, struct tgl_dc *DC, int ints, void *data, struct query_methods *methods, void *extra, void *callback, void *callback_extra)
+{
+       return tglq_send_query_ex(TLS, DC, ints, data, methods, extra, callback, callback_extra, 0);
+}
+
+static int fail_on_error(struct tgl_state *TLS, struct query *q, int error_code, int l, char *error)
+{
+       fprintf(stderr, "error #%d: %.*s\n", error_code, l, error);
+       assert(0);
+       return 0;
+}
+
+void tglq_query_ack(struct tgl_state *TLS, long long id)
+{
+       struct query *q = tglq_query_get(TLS, id);
+       if (q && !(q->flags & QUERY_ACK_RECEIVED)) {
+               assert(q->msg_id == id);
+               q->flags |= QUERY_ACK_RECEIVED;
+               TLS->timer_methods->remove(q->ev);
+       }
+}
+
+void tglq_query_delete(struct tgl_state *TLS, long long id)
+{
+       struct query *q = tglq_query_get(TLS, id);
+       if (!q) {
+               return;
+       }
+       if (!(q->flags & QUERY_ACK_RECEIVED)) {
+               TLS->timer_methods->remove(q->ev);
+       }
+       TLS->queries_tree = tree_delete_query(TLS->queries_tree, q);
+       tfree(q->data, q->data_len * 4);
+       TLS->timer_methods->free(q->ev);
+       TLS->active_queries --;
+}
+
+int tglq_query_error(struct tgl_state *TLS, long long id)
+{
+       assert(fetch_int() == CODE_rpc_error);
+       int error_code = fetch_int();
+       int error_len = prefetch_strlen();
+       char *error = fetch_str(error_len);
+       struct query *q = tglq_query_get(TLS, id);
+       if (!q) {
+               vlogprintf(E_WARNING, "error for query #%lld: #%d :%.*s\n", id, error_code, error_len, error);
+               vlogprintf(E_WARNING, "No such query\n");
+       } else {
+               if (!(q->flags & QUERY_ACK_RECEIVED)) {
+                       TLS->timer_methods->remove(q->ev);
+               }
+               TLS->queries_tree = tree_delete_query(TLS->queries_tree, q);
+               int res = 0;
+
+               int error_handled = 0;
+
+               switch (error_code) {
+               case 303:
+                       // migrate
+               {
+                       int offset = -1;
+                       if (error_len >= 15 && !memcmp(error, "PHONE_MIGRATE_", 14)) {
+                               offset = 14;
+                       }
+                       if (error_len >= 17 && !memcmp(error, "NETWORK_MIGRATE_", 16)) {
+                               offset = 16;
+                       }
+                       if (error_len >= 14 && !memcmp(error, "USER_MIGRATE_", 13)) {
+                               offset = 13;
+                       }
+                       if (offset >= 0) {
+                               int i = 0;
+                               while(offset < error_len && error[offset] >= '0' && error[offset] <= '9') {
+                                       i = i * 10 + error[offset] - '0';
+                                       offset ++;
+                               }
+                               if (i > 0 && i < TGL_MAX_DC_NUM) {
+                                       bl_do_set_working_dc(TLS, i);
+                                       q->flags &= ~QUERY_ACK_RECEIVED;
+                                       //q->session_id = 0;
+                                       //struct tgl_dc *DC = q->DC;
+                                       //if (!(DC->flags & 4) && !(q->flags & QUERY_FORCE_SEND)) {
+                                       q->session_id = 0;
+                                       //}
+                                       q->DC = TLS->DC_working;
+                                       TLS->timer_methods->insert(q->ev, 0);
+                                       error_handled = 1;
+                                       res = 1;
+                               }
+                       }
+               }
+               break;
+               case 400:
+                       // nothing to handle
+                       // bad user input probably
+                       break;
+               case 401:
+                       if (!(TLS->locks & TGL_LOCK_PASSWORD)) {
+                               TLS->locks |= TGL_LOCK_PASSWORD;
+                               tgl_do_check_password(TLS, NULL, NULL);
+                       }
+                       q->flags &= ~QUERY_ACK_RECEIVED;
+                       TLS->timer_methods->insert(q->ev, 1);
+                       struct tgl_dc *DC = q->DC;
+                       if (!(DC->flags & 4) && !(q->flags & QUERY_FORCE_SEND)) {
+                               q->session_id = 0;
+                       }
+                       error_handled = 1;
+                       break;
+               case 403:
+                       // privacy violation
+                       break;
+               case 404:
+                       // not found
+                       break;
+               case 420:
+                       // flood
+               case 500:
+                       // internal error
+               default:
+                       // anything else. Treated as internal error
+               {
+                       int wait;
+                       if (strncmp(error, "FLOOD_WAIT_", 11)) {
+                               if (error_code == 420) {
+                                       vlogprintf(E_ERROR, "error = '%s'\n", error);
+                               }
+                               wait = 10;
+                       } else {
+                               wait = atoll(error + 11);
+                       }
+                       q->flags &= ~QUERY_ACK_RECEIVED;
+                       TLS->timer_methods->insert(q->ev, wait);
+                       struct tgl_dc *DC = q->DC;
+                       if (!(DC->flags & 4) && !(q->flags & QUERY_FORCE_SEND)) {
+                               q->session_id = 0;
+                       }
+                       error_handled = 1;
+               }
+               break;
+               }
+
+               if (error_handled) {
+                       vlogprintf(E_DEBUG - 2, "error for query #%lld: #%d %.*s(HANDLED)\n", id, error_code, error_len, error);
+               } else {
+                       vlogprintf(E_WARNING, "error for query #%lld: #%d %.*s\n", id, error_code, error_len, error);
+                       if (q->methods && q->methods->on_error) {
+                               res = q->methods->on_error(TLS, q, error_code, error_len, error);
+                       }
+               }
+
+               if (res <= 0) {
+                       tfree(q->data, q->data_len * 4);
+                       TLS->timer_methods->free(q->ev);
+               }
+
+               if (res == -11) {
+                       TLS->active_queries --;
+                       return -1;
+
+               }
+       }
+       TLS->active_queries --;
+       return 0;
+}
+
+#define MAX_PACKED_SIZE (1 << 24)
+static int packed_buffer[MAX_PACKED_SIZE / 4];
+
+int tglq_query_result(struct tgl_state *TLS, long long id)
+{
+       vlogprintf(E_DEBUG, "result for query #%lld. Size %ld bytes\n", id,(long)4 *(in_end - in_ptr));
+       int op = prefetch_int();
+       int *end = 0;
+       int *eend = 0;
+       if (op == CODE_gzip_packed) {
+               fetch_int();
+               int l = prefetch_strlen();
+               char *s = fetch_str(l);
+               int total_out = tgl_inflate(s, l, packed_buffer, MAX_PACKED_SIZE);
+               vlogprintf(E_DEBUG, "inflated %d bytes\n", total_out);
+               end = in_ptr;
+               eend = in_end;
+               in_ptr = packed_buffer;
+               in_end = in_ptr + total_out / 4;
+       }
+       struct query *q = tglq_query_get(TLS, id);
+       if (!q) {
+               vlogprintf(E_WARNING, "No such query\n");
+               in_ptr = in_end;
+       } else {
+               if (!(q->flags & QUERY_ACK_RECEIVED)) {
+                       TLS->timer_methods->remove(q->ev);
+               }
+               TLS->queries_tree = tree_delete_query(TLS->queries_tree, q);
+               if (q->methods && q->methods->on_answer) {
+                       if (q->type) {
+                               int *save = in_ptr;
+                               vlogprintf(E_DEBUG, "in_ptr = %p, end_ptr = %p\n", in_ptr, in_end);
+                               if (skip_type_any(q->type) < 0) {
+                                       vlogprintf(E_ERROR, "Skipped %ld int out of %ld(type %s)\n",(long)(in_ptr - save),(long)(in_end - save), q->type->type->id);
+                                       assert(0);
+                               }
+
+                               assert(in_ptr == in_end);
+                               in_ptr = save;
+                       }
+                       q->methods->on_answer(TLS, q);
+                       assert(in_ptr == in_end);
+               }
+               tfree(q->data, 4 * q->data_len);
+               TLS->timer_methods->free(q->ev);
+               tfree(q, sizeof(*q));
+
+       }
+       if (end) {
+               in_ptr = end;
+               in_end = eend;
+       }
+       TLS->active_queries--;
+       return 0;
+} 
+
+static void out_random(int n)
+{
+       assert(n <= 32);
+       static char buf[32];
+       tglt_secure_random(buf, n);
+       out_cstring(buf, n);
+}
+
+int allow_send_linux_version;
+void tgl_do_insert_header(struct tgl_state *TLS)
+{
+       out_int(CODE_invoke_with_layer);
+       out_int(TGL_SCHEME_LAYER);
+       out_int(CODE_init_connection);
+       out_int(TLS->app_id);
+       if (allow_send_linux_version) {
+               struct utsname st;
+               uname(&st);
+               out_string(st.machine);
+               static char buf[4096];
+               tsnprintf(buf, sizeof(buf) - 1, "%.999s %.999s %.999s\n", st.sysname, st.release, st.version);
+               out_string(buf);
+               tsnprintf(buf, sizeof(buf) - 1, "%s(TGL %s)\n", TLS->app_version, TGL_VERSION);
+               out_string(buf);
+               out_string("En");
+       } else {
+               out_string("x86");
+               out_string("Linux");
+               static char buf[4096];
+               tsnprintf(buf, sizeof(buf) - 1, "%s(TGL %s)\n", TLS->app_version, TGL_VERSION);
+               out_string(buf);
+               out_string("en");
+       }
+}
+
+static void fetch_dc_option(struct tgl_state *TLS)
+{
+       assert(fetch_int() == CODE_dc_option);
+       int id = fetch_int();
+       int l1 = prefetch_strlen();
+       char *name = fetch_str(l1);
+       int l2 = prefetch_strlen();
+       char *ip = fetch_str(l2);
+       int port = fetch_int();
+       bl_do_dc_option(TLS, id, l1, name, l2, ip, port);
+}
+
+static int help_get_config_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       unsigned op = fetch_int();
+       assert(op == CODE_config || op == CODE_config_old);
+       fetch_int();
+
+       unsigned test_mode = fetch_int();
+       assert(test_mode == CODE_bool_true || test_mode == CODE_bool_false);
+       assert(test_mode == CODE_bool_false || test_mode == CODE_bool_true);
+       int this_dc = fetch_int();
+       vlogprintf(E_DEBUG, "this_dc = %d\n", this_dc);
+       assert(fetch_int() == CODE_vector);
+       int n = fetch_int();
+       assert(n <= 10);
+       int i;
+       for (i = 0; i < n; i++) {
+               fetch_dc_option(TLS);
+       }
+       int max_chat_size = fetch_int();
+       int max_bcast_size = 0;
+       if (op == CODE_config) {
+               max_bcast_size = fetch_int();
+       }
+       vlogprintf(E_DEBUG, "chat_size = %d, bcast_size = %d\n", max_chat_size, max_bcast_size);
+
+       if (q->callback) {
+               ((void(*)(struct tgl_state *,void *, int))(q->callback))(TLS, q->callback_extra, 1);
+       }
+       return 0;
+}
+
+static int q_void_on_error(struct tgl_state *TLS, struct query *q, int error_code, int error_len, char *error)
+{
+       if (q->callback) {
+               ((void(*)(struct tgl_state *,void *, int))(q->callback))(TLS, q->callback_extra, 0);
+       }
+       return 0;
+}
+
+static int q_ptr_on_error(struct tgl_state *TLS, struct query *q, int error_code, int error_len, char *error)
+{
+       if (q->callback) {
+               ((void(*)(struct tgl_state *,void *, int, void *))(q->callback))(TLS, q->callback_extra, 0, NULL);
+       }
+       return 0;
+}
+
+static int q_list_on_error(struct tgl_state *TLS, struct query *q, int error_code, int error_len, char *error)
+{
+       if (q->callback) {
+               ((void(*)(struct tgl_state *,void *, int, int, void *))(q->callback))(TLS, q->callback_extra, 0, 0, NULL);
+       }
+       return 0;
+}
+
+static struct query_methods help_get_config_methods = {
+               .on_answer = help_get_config_on_answer,
+               .on_error = q_void_on_error,
+               .type = TYPE_TO_PARAM(config)
+};
+
+void tgl_do_help_get_config(struct tgl_state *TLS, void(*callback)(struct tgl_state *,void *, int), void *callback_extra)
+{
+       clear_packet();
+       tgl_do_insert_header(TLS);
+       out_int(CODE_help_get_config);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &help_get_config_methods, 0, callback, callback_extra);
+}
+
+void tgl_do_help_get_config_dc(struct tgl_state *TLS, struct tgl_dc *D, void(*callback)(struct tgl_state *, void *, int), void *callback_extra)
+{
+       clear_packet();
+       tgl_do_insert_header(TLS);
+       out_int(CODE_help_get_config);
+       tglq_send_query_ex(TLS, D, packet_ptr - packet_buffer, packet_buffer, &help_get_config_methods, 0, callback, callback_extra, 2);
+}
+
+static int send_code_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       static char *phone_code_hash;
+       assert(fetch_int() ==(int)CODE_auth_sent_code);
+       int registered = fetch_bool();
+       int l = prefetch_strlen();
+       char *s = fetch_str(l);
+       if (phone_code_hash) {
+               tfree_str(phone_code_hash);
+       }
+       phone_code_hash = tstrndup(s, l);
+       fetch_int();
+       fetch_bool();
+       tfree_str(q->extra);
+
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int, int, const char *))(q->callback))(TLS, q->callback_extra, 1, registered, phone_code_hash);
+       }
+       return 0;
+}
+
+static int send_code_on_error(struct tgl_state *TLS, struct query *q, int error_code, int l, char *error)
+{
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int, int, const char *))(q->callback))(TLS, q->callback_extra, 0, 0, NULL);
+       }
+       tfree_str(q->extra);
+       return 0;
+}
+
+static struct query_methods send_code_methods = {
+               .on_answer = send_code_on_answer,
+               .on_error = send_code_on_error,
+               .type = TYPE_TO_PARAM(auth_sent_code)
+};
+
+void tgl_do_send_code(struct tgl_state *TLS, const char *user, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, int registered, const char *hash), void *callback_extra)
+{
+       vlogprintf(E_DEBUG, "sending code to dc %d\n", TLS->dc_working_num);
+       clear_packet();
+       tgl_do_insert_header(TLS);
+       out_int(CODE_auth_send_code);
+       out_string(user);
+       out_int(0);
+       out_int(TLS->app_id);
+       out_string(TLS->app_hash);
+       out_string("en");
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_code_methods, tstrdup(user), callback, callback_extra);
+}
+
+
+static int phone_call_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       fetch_bool();
+       if (q->callback) {
+               ((void(*)(struct tgl_state *TLS, void *, int))(q->callback))(TLS, q->callback_extra, 1);
+       }
+       return 0;
+}
+
+static struct query_methods phone_call_methods = {
+               .on_answer = phone_call_on_answer,
+               .on_error = q_void_on_error,
+               .type = TYPE_TO_PARAM(bool)
+};
+
+void tgl_do_phone_call(struct tgl_state *TLS, const char *user, const char *hash,void(*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra)
+{
+       vlogprintf(E_DEBUG, "calling user\n");
+       clear_packet();
+       tgl_do_insert_header(TLS);
+       out_int(CODE_auth_send_call);
+       out_string(user);
+       out_string(hash);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &phone_call_methods, 0, callback, callback_extra);
+}
+
+static int sign_in_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       assert(fetch_int() ==(int)CODE_auth_authorization);
+       int expires = fetch_int();
+       vlogprintf(E_DEBUG, "Expires in %d\n", expires);
+
+       struct tgl_user *U = tglf_fetch_alloc_user(TLS);
+
+       bl_do_dc_signed(TLS, TLS->DC_working->id);
+
+       if (q->callback) {
+               ((void(*)(struct tgl_state *TLS, void *, int, struct tgl_user *))q->callback)(TLS, q->callback_extra, 1, U);
+       }
+
+       return 0;
+}
+
+static int sign_in_on_error(struct tgl_state *TLS, struct query *q, int error_code, int l, char *error)
+{
+       vlogprintf(E_ERROR, "error_code = %d, error = %.*s\n", error_code, l, error);
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int, struct tgl_user *))q->callback)(TLS, q->callback_extra, 0, NULL);
+       }
+       return 0;
+}
+
+static struct query_methods sign_in_methods = {
+               .on_answer = sign_in_on_answer,
+               .on_error = sign_in_on_error,
+               .type = TYPE_TO_PARAM(auth_authorization)
+};
+
+int tgl_do_send_code_result(struct tgl_state *TLS, const char *user, const char *hash, const char *code, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *Self), void *callback_extra)
+{
+       clear_packet();
+       out_int(CODE_auth_sign_in);
+       out_string(user);
+       out_string(hash);
+       out_string(code);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &sign_in_methods, 0, callback, callback_extra);
+       return 0;
+}
+
+int tgl_do_send_code_result_auth(struct tgl_state *TLS, const char *user, const char *hash, const char *code, const char *first_name, const char *last_name, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *Self), void *callback_extra)
+{
+       clear_packet();
+       out_int(CODE_auth_sign_up);
+       out_string(user);
+       out_string(hash);
+       out_string(code);
+       out_string(first_name);
+       out_string(last_name);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &sign_in_methods, 0, callback, callback_extra);
+       return 0;
+}
+
+static int get_contacts_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       int i;
+       assert(fetch_int() ==(int)CODE_contacts_contacts);
+       assert(fetch_int() == CODE_vector);
+       int n = fetch_int();
+       for (i = 0; i < n; i++) {
+               assert(fetch_int() ==(int)CODE_contact);
+               fetch_int(); // id
+               fetch_int(); // mutual
+       }
+       assert(fetch_int() == CODE_vector);
+       n = fetch_int();
+       struct tgl_user **list = talloc(sizeof(void *) * n);
+       for (i = 0; i < n; i++) {
+               list[i] = tglf_fetch_alloc_user(TLS);
+       }
+       if (q->callback) {
+               ((void(*)(struct tgl_state *TLS, void *, int, int, struct tgl_user **))q->callback)(TLS, q->callback_extra, 1, n, list);
+       }
+       tfree(list, sizeof(void *) * n);
+       return 0;
+}
+
+static struct query_methods get_contacts_methods = {
+               .on_answer = get_contacts_on_answer,
+               .on_error = q_list_on_error,
+               .type = TYPE_TO_PARAM(contacts_contacts)
+};
+
+
+void tgl_do_update_contact_list(struct tgl_state *TLS, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, struct tgl_user *contacts[]), void *callback_extra)
+{
+       clear_packet();
+       out_int(CODE_contacts_get_contacts);
+       out_string("");
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &get_contacts_methods, 0, callback, callback_extra);
+}
+
+static int *encr_extra;
+static int *encr_ptr;
+static int *encr_end;
+
+static char *encrypt_decrypted_message(struct tgl_secret_chat *E)
+{
+       static int msg_key[4];
+       static unsigned char sha1a_buffer[20];
+       static unsigned char sha1b_buffer[20];
+       static unsigned char sha1c_buffer[20];
+       static unsigned char sha1d_buffer[20];
+       int x = *(encr_ptr);
+       assert(x >= 0 && !(x & 3));
+       sha1((void *)encr_ptr, 4 + x, sha1a_buffer);
+       memcpy(msg_key, sha1a_buffer + 4, 16);
+
+       static unsigned char buf[64];
+       memcpy(buf, msg_key, 16);
+       memcpy(buf + 16, E->key, 32);
+       sha1(buf, 48, sha1a_buffer);
+
+       memcpy(buf, E->key + 8, 16);
+       memcpy(buf + 16, msg_key, 16);
+       memcpy(buf + 32, E->key + 12, 16);
+       sha1(buf, 48, sha1b_buffer);
+
+       memcpy(buf, E->key + 16, 32);
+       memcpy(buf + 32, msg_key, 16);
+       sha1(buf, 48, sha1c_buffer);
+
+       memcpy(buf, msg_key, 16);
+       memcpy(buf + 16, E->key + 24, 32);
+       sha1(buf, 48, sha1d_buffer);
+
+       static unsigned char key[32];
+       memcpy(key, sha1a_buffer + 0, 8);
+       memcpy(key + 8, sha1b_buffer + 8, 12);
+       memcpy(key + 20, sha1c_buffer + 4, 12);
+
+       static unsigned char iv[32];
+       memcpy(iv, sha1a_buffer + 8, 12);
+       memcpy(iv + 12, sha1b_buffer + 0, 8);
+       memcpy(iv + 20, sha1c_buffer + 16, 4);
+       memcpy(iv + 24, sha1d_buffer + 0, 8);
+
+       AES_KEY aes_key;
+       AES_set_encrypt_key(key, 256, &aes_key);
+       AES_ige_encrypt((void *)encr_ptr,(void *)encr_ptr, 4 *(encr_end - encr_ptr), &aes_key, iv, 1);
+       memset(&aes_key, 0, sizeof(aes_key));
+
+       return(void *)msg_key;
+}
+
+static void encr_start(void)
+{
+       encr_extra = packet_ptr;
+       packet_ptr += 1; // str len
+       packet_ptr += 2; // fingerprint
+       packet_ptr += 4; // msg_key
+       packet_ptr += 1; // len
+}
+
+
+static void encr_finish(struct tgl_secret_chat *E)
+{
+       int l = packet_ptr -(encr_extra +  8);
+       while(((packet_ptr - encr_extra) - 3) & 3) {
+               int t;
+               tglt_secure_random(&t, 4);
+               out_int(t);
+       }
+
+       *encr_extra =((packet_ptr - encr_extra) - 1) * 4 * 256 + 0xfe;
+       encr_extra ++;
+       *(long long *)encr_extra = E->key_fingerprint;
+       encr_extra += 2;
+       encr_extra[4] = l * 4;
+       encr_ptr = encr_extra + 4;
+       encr_end = packet_ptr;
+       memcpy(encr_extra, encrypt_decrypted_message(E), 16);
+}
+
+void tgl_do_send_encr_chat_layer(struct tgl_state *TLS, struct tgl_secret_chat *E)
+{
+       long long t;
+       tglt_secure_random(&t, 8);
+       int action[2];
+       action[0] = CODE_decrypted_message_action_notify_layer;
+       action[1] = TGL_ENCRYPTED_LAYER;
+       bl_do_send_message_action_encr(TLS, t, TLS->our_id, tgl_get_peer_type(E->id), tgl_get_peer_id(E->id), time(0), 2, action);
+
+       struct tgl_message *M = tgl_message_get(TLS, t);
+       assert(M);
+       assert(M->action.type == tgl_message_action_notify_layer);
+       tgl_do_send_msg(TLS, M, 0, 0);
+}
+
+void tgl_do_set_encr_chat_ttl(struct tgl_state *TLS, struct tgl_secret_chat *E, int ttl, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra)
+{
+       long long t;
+       tglt_secure_random(&t, 8);
+       int action[2];
+       action[0] = CODE_decrypted_message_action_set_message_t_t_l;
+       action[1] = ttl;
+       bl_do_send_message_action_encr(TLS, t, TLS->our_id, tgl_get_peer_type(E->id), tgl_get_peer_id(E->id), time(0), 2, action);
+
+       struct tgl_message *M = tgl_message_get(TLS, t);
+       assert(M);
+       assert(M->action.type == tgl_message_action_set_message_ttl);
+       tgl_do_send_msg(TLS, M, callback, callback_extra);
+       bl_do_encr_chat_set_ttl(TLS, E, ttl);
+}
+
+static int msg_send_encr_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       assert(fetch_int() == CODE_messages_sent_encrypted_message);
+       struct tgl_message *M = q->extra;
+       fetch_int();
+       if (M->flags & FLAG_PENDING) {
+               bl_do_set_message_sent(TLS, M);
+               bl_do_msg_update(TLS, M->id);
+       }
+
+       if (q->callback) {
+               ((void(*)(struct tgl_state *TLS, void *, int, struct tgl_message *))q->callback)(TLS, q->callback_extra, 1, M);
+       }
+       return 0;
+}
+
+static int msg_send_encr_on_error(struct tgl_state *TLS, struct query *q, int error_code, int error_len, char *error)
+{
+       struct tgl_message *M = q->extra;
+       tgl_peer_t *P = tgl_peer_get(TLS, M->to_id);
+       if (P && P->encr_chat.state != sc_deleted &&  error_code == 400) {
+               if (strncmp(error, "ENCRYPTION_DECLINED", 19) == 0) {
+                       bl_do_encr_chat_delete(TLS, &P->encr_chat);
+               }
+       }
+       if (q->callback) {
+               ((void(*)(struct tgl_state *TLS, void *, int, struct tgl_message *))q->callback)(TLS, q->callback_extra, 0, M);
+       }
+       if (M) {
+               bl_do_delete_msg(TLS, M);
+       }
+       return 0;
+}
+
+static int msg_send_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       unsigned x = fetch_int();
+       assert(x == CODE_messages_sent_message || x == CODE_messages_sent_message_link);
+       int id = fetch_int(); // id
+       long long y = *(long long *)q->extra;
+       tfree(q->extra, 8);
+       struct tgl_message *M = tgl_message_get(TLS, y);
+       if (M && M->id != id) {
+               bl_do_set_msg_id(TLS, M, id);
+       }
+       int date = fetch_int();
+       int pts = fetch_int();
+       int seq = fetch_int();
+       if (seq == TLS->seq + 1 && !(TLS->locks & TGL_LOCK_DIFF)) {
+               bl_do_set_date(TLS, date);
+               bl_do_set_pts(TLS, pts);
+               bl_do_msg_seq_update(TLS, id);
+       } else {
+               if (seq > TLS->seq + 1) {
+                       vlogprintf(E_NOTICE, "Hole in seq\n");
+                       tgl_do_get_difference(TLS, 0, 0, 0);
+               }
+       }
+       if (x == CODE_messages_sent_message_link) {
+               assert(skip_type_any(TYPE_TO_PARAM_1(vector, TYPE_TO_PARAM(contacts_link))) >= 0);
+       }
+       if (M->flags & FLAG_PENDING) {
+               bl_do_set_message_sent(TLS, M);
+       }
+       if (q->callback) {
+               ((void(*)(struct tgl_state *,void *, int, struct tgl_message *))q->callback)(TLS, q->callback_extra, 1, M);
+       }
+       return 0;
+}
+
+static int msg_send_on_error(struct tgl_state *TLS, struct query *q, int error_code, int error_len, char *error)
+{
+       long long x = *(long long *)q->extra;
+       tfree(q->extra, 8);
+       struct tgl_message *M = tgl_message_get(TLS, x);
+       if (q->callback) {
+               ((void(*)(struct tgl_state *,void *, int, struct tgl_message *))q->callback)(TLS, q->callback_extra, 0, M);
+       }
+       if (M) {
+               bl_do_delete_msg(TLS, M);
+       }
+       return 0;
+}
+
+static struct query_methods msg_send_methods = {
+               .on_answer = msg_send_on_answer,
+               .on_error = msg_send_on_error,
+               .type = TYPE_TO_PARAM(messages_sent_message)
+};
+
+static struct query_methods msg_send_encr_methods = {
+               .on_answer = msg_send_encr_on_answer,
+               .on_error = msg_send_encr_on_error,
+               .type = TYPE_TO_PARAM(messages_sent_encrypted_message)
+};
+
+void tgl_do_send_encr_msg_action(struct tgl_state *TLS, struct tgl_message *M, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra)
+{
+       tgl_peer_t *P = tgl_peer_get(TLS, M->to_id);
+       if (!P || P->encr_chat.state != sc_ok) {
+               vlogprintf(E_WARNING, "Unknown encrypted chat\n");
+               if (callback) {
+                       callback(TLS, callback_extra, 0, 0);
+               }
+               return;
+       }
+
+       clear_packet();
+       out_int(CODE_messages_send_encrypted_service);
+       out_int(CODE_input_encrypted_chat);
+       out_int(tgl_get_peer_id(M->to_id));
+       out_long(P->encr_chat.access_hash);
+       out_long(M->id);
+       encr_start();
+       if (P->encr_chat.layer <= 16) {
+               out_int(CODE_decrypted_message_service_l16);
+       } else {
+               out_int(CODE_decrypted_message_layer);
+               out_random(15 + 4 *(lrand48() % 3));
+               out_int(TGL_ENCRYPTED_LAYER);
+               out_int(2 * P->encr_chat.in_seq_no +(P->encr_chat.admin_id != TLS->our_id));
+               out_int(2 * P->encr_chat.out_seq_no +(P->encr_chat.admin_id == TLS->our_id) - 2);
+               out_int(CODE_decrypted_message_service);
+       }
+       out_long(M->id);
+       if (P->encr_chat.layer < 17) {
+               out_random(15 + 4 *(lrand48() % 3));
+       }
+
+       switch (M->action.type) {
+       case tgl_message_action_notify_layer:
+               out_int(CODE_decrypted_message_action_notify_layer);
+               out_int(M->action.layer);
+               break;
+       case tgl_message_action_set_message_ttl:
+               out_int(CODE_decrypted_message_action_set_message_t_t_l);
+               out_int(M->action.ttl);
+               break;
+       case tgl_message_action_request_key:
+               out_int(CODE_decrypted_message_action_request_key);
+               out_long(M->action.exchange_id);
+               out_cstring((void *)M->action.g_a, 256);
+               break;
+       case tgl_message_action_accept_key:
+               out_int(CODE_decrypted_message_action_accept_key);
+               out_long(M->action.exchange_id);
+               out_cstring((void *)M->action.g_a, 256);
+               out_long(M->action.key_fingerprint);
+               break;
+       case tgl_message_action_commit_key:
+               out_int(CODE_decrypted_message_action_commit_key);
+               out_long(M->action.exchange_id);
+               out_long(M->action.key_fingerprint);
+               break;
+       case tgl_message_action_abort_key:
+               out_int(CODE_decrypted_message_action_abort_key);
+               out_long(M->action.exchange_id);
+               break;
+       case tgl_message_action_noop:
+               out_int(CODE_decrypted_message_action_noop);
+               break;
+       default:
+               assert(0);
+       }
+       encr_finish(&P->encr_chat);
+
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &msg_send_encr_methods, M, callback, callback_extra);
+}
+
+void tgl_do_send_encr_msg(struct tgl_state *TLS, struct tgl_message *M, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra)
+{
+       if (M->service) {
+               tgl_do_send_encr_msg_action(TLS, M, callback, callback_extra);
+               return;
+       }
+       tgl_peer_t *P = tgl_peer_get(TLS, M->to_id);
+       if (!P || P->encr_chat.state != sc_ok) {
+               vlogprintf(E_WARNING, "Unknown encrypted chat\n");
+               if (callback) {
+                       callback(TLS, callback_extra, 0, M);
+               }
+               return;
+       }
+
+       clear_packet();
+       out_int(CODE_messages_send_encrypted);
+       out_int(CODE_input_encrypted_chat);
+       out_int(tgl_get_peer_id(M->to_id));
+       out_long(P->encr_chat.access_hash);
+       out_long(M->id);
+       encr_start();
+       if (P->encr_chat.layer <= 16) {
+               out_int(CODE_decrypted_message_l16);
+       } else {
+               out_int(CODE_decrypted_message_layer);
+               out_random(15 + 4 *(lrand48() % 3));
+               out_int(TGL_ENCRYPTED_LAYER);
+               out_int(2 * P->encr_chat.in_seq_no +(P->encr_chat.admin_id != TLS->our_id));
+               out_int(2 * P->encr_chat.out_seq_no +(P->encr_chat.admin_id == TLS->our_id) - 2);
+               out_int(CODE_decrypted_message);
+       }
+       out_long(M->id);
+       if (P->encr_chat.layer < 17) {
+               out_random(15 + 4 *(lrand48() % 3));
+       } else {
+               out_int(P->encr_chat.ttl);
+       }
+       out_cstring((void *)M->message, M->message_len);
+       out_int(CODE_decrypted_message_media_empty);
+       encr_finish(&P->encr_chat);
+
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &msg_send_encr_methods, M, callback, callback_extra);
+}
+
+void tgl_do_send_msg(struct tgl_state *TLS, struct tgl_message *M, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra)
+{
+       if (tgl_get_peer_type(M->to_id) == TGL_PEER_ENCR_CHAT) {
+               tgl_do_send_encr_msg(TLS, M, callback, callback_extra);
+               return;
+       }
+       clear_packet();
+       out_int(CODE_messages_send_message);
+       out_peer_id(TLS, M->to_id);
+       out_cstring(M->message, M->message_len);
+       out_long(M->id);
+       long long *x = talloc(8);
+       *x = M->id;
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &msg_send_methods, x, callback, callback_extra);
+}
+
+void tgl_do_send_message(struct tgl_state *TLS, tgl_peer_id_t id, const char *msg, int len, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra)
+{
+       if (tgl_get_peer_type(id) == TGL_PEER_ENCR_CHAT) {
+               tgl_peer_t *P = tgl_peer_get(TLS, id);
+               if (!P) {
+                       vlogprintf(E_WARNING, "Unknown encrypted chat\n");
+                       if (callback) {
+                               callback(TLS, callback_extra, 0, 0);
+                       }
+                       return;
+               }
+               if (P->encr_chat.state != sc_ok) {
+                       vlogprintf(E_WARNING, "Chat is not yet initialized\n");
+                       if (callback) {
+                               callback(TLS, callback_extra, 0, 0);
+                       }
+                       return;
+               }
+       }
+       long long t;
+       tglt_secure_random(&t, 8);
+       vlogprintf(E_DEBUG, "t = %lld, len = %d\n", t, len);
+       bl_do_send_message_text(TLS, t, TLS->our_id, tgl_get_peer_type(id), tgl_get_peer_id(id), time(0), len, msg);
+       struct tgl_message *M = tgl_message_get(TLS, t);
+       assert(M);
+       tgl_do_send_msg(TLS, M, callback, callback_extra);
+}
+
+void tgl_do_send_text(struct tgl_state *TLS, tgl_peer_id_t id, char *file_name, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra)
+{
+       int fd = open(file_name, O_RDONLY);
+       if (fd < 0) {
+               vlogprintf(E_WARNING, "No such file '%s'\n", file_name);
+               if (callback) {
+                       callback(TLS, callback_extra, 0, 0);
+               }
+               return;
+       }
+       static char buf[(1 << 20) + 1];
+       int x = read(fd, buf,(1 << 20) + 1);
+       assert(x >= 0);
+       if (x ==(1 << 20) + 1) {
+               vlogprintf(E_WARNING, "Too big file '%s'\n", file_name);
+               close(fd);
+               if (callback) {
+                       callback(TLS, callback_extra, 0, 0);
+               }
+       } else {
+               buf[x] = 0;
+               tgl_do_send_message(TLS, id, buf, x, callback, callback_extra);
+               close(fd);
+       }
+}
+
+void tgl_do_messages_mark_read(struct tgl_state *TLS, tgl_peer_id_t id, int max_id, int offset, void(*callback)(struct tgl_state *TLS, void *callback_extra, int), void *callback_extra);
+
+static int mark_read_on_receive(struct tgl_state *TLS, struct query *q)
+{
+       assert(fetch_int() ==(int)CODE_messages_affected_history);
+       int pts = fetch_int();
+       int seq = fetch_int(); // seq
+       if (seq == TLS->seq + 1 && !(TLS->locks & TGL_LOCK_DIFF)) {
+               bl_do_set_pts(TLS, pts);
+               bl_do_set_seq(TLS, seq);
+       } else {
+               if (seq > TLS->seq + 1) {
+                       vlogprintf(E_NOTICE, "Hole in seq\n");
+                       tgl_do_get_difference(TLS, 0, 0, 0);
+               }
+       }
+
+       int offset = fetch_int(); // offset
+       int *t = q->extra;
+       if (offset > 0) {
+               tgl_do_messages_mark_read(TLS, tgl_set_peer_id(t[0], t[1]), t[2], offset, q->callback, q->callback_extra);
+       } else {
+               if (q->callback) {
+                       ((void(*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 1);
+               }
+       }
+       tfree(t, 12);
+       return 0;
+}
+
+static int mark_read_on_error(struct tgl_state *TLS, struct query *q, int error_code, int len, char *error)
+{
+       int *t = q->extra;
+       tfree(t, 12);
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 0);
+       }
+       return 0;
+}
+
+static int mark_read_encr_on_receive(struct tgl_state *TLS, struct query *q)
+{
+       fetch_bool();
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 1);
+       }
+       return 0;
+}
+
+static int mark_read_encr_on_error(struct tgl_state *TLS, struct query *q, int error_code, int error_len, char *error)
+{
+       tgl_peer_t *P = q->extra;
+       if (P && P->encr_chat.state != sc_deleted &&  error_code == 400) {
+               if (strncmp(error, "ENCRYPTION_DECLINED", 19) == 0) {
+                       bl_do_encr_chat_delete(TLS, &P->encr_chat);
+               }
+       }
+       return 0;
+}
+
+static struct query_methods mark_read_methods = {
+               .on_answer = mark_read_on_receive,
+               .on_error = mark_read_on_error,
+               .type = TYPE_TO_PARAM(messages_affected_history)
+};
+
+static struct query_methods mark_read_encr_methods = {
+               .on_answer = mark_read_encr_on_receive,
+               .on_error = mark_read_encr_on_error,
+               .type = TYPE_TO_PARAM(bool)
+};
+
+void tgl_do_messages_mark_read(struct tgl_state *TLS, tgl_peer_id_t id, int max_id, int offset, void(*callback)(struct tgl_state *TLS, void *callback_extra, int), void *callback_extra)
+{
+       clear_packet();
+       out_int(CODE_messages_read_history);
+       out_peer_id(TLS, id);
+       out_int(max_id);
+       out_int(offset);
+       out_int(CODE_bool_true);
+       int *t = talloc(12);
+       t[0] = tgl_get_peer_type(id);
+       t[1] = tgl_get_peer_id(id);
+       t[2] = max_id;
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &mark_read_methods, t, callback, callback_extra);
+}
+
+void tgl_do_messages_mark_read_encr(struct tgl_state *TLS, tgl_peer_id_t id, long long access_hash, int last_time, void(*callback)(struct tgl_state *TLS, void *callback_extra, int), void *callback_extra)
+{
+       clear_packet();
+       out_int(CODE_messages_read_encrypted_history);
+       out_int(CODE_input_encrypted_chat);
+       out_int(tgl_get_peer_id(id));
+       out_long(access_hash);
+       out_int(last_time);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &mark_read_encr_methods, tgl_peer_get(TLS, id), callback, callback_extra);
+}
+
+void tgl_do_mark_read(struct tgl_state *TLS, tgl_peer_id_t id, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra)
+{
+       if (tgl_get_peer_type(id) == TGL_PEER_USER || tgl_get_peer_type(id) == TGL_PEER_CHAT) {
+               tgl_do_messages_mark_read(TLS, id, 0, 0, callback, callback_extra);
+               return;
+       }
+       tgl_peer_t *P = tgl_peer_get(TLS, id);
+       if (!P) {
+               vlogprintf(E_WARNING, "Unknown peer\n");
+               callback(TLS, callback_extra, 0);
+               return;
+       }
+       assert(tgl_get_peer_type(id) == TGL_PEER_ENCR_CHAT);
+       if (P->last) {
+               tgl_do_messages_mark_read_encr(TLS, id, P->encr_chat.access_hash, P->last->date, callback, callback_extra);
+       } else {
+               tgl_do_messages_mark_read_encr(TLS, id, P->encr_chat.access_hash, time(0) - 10, callback, callback_extra);
+
+       }
+}
+
+void _tgl_do_get_history(struct tgl_state *TLS, tgl_peer_id_t id, int limit, int offset, int max_id, int list_offset, int list_size, struct tgl_message *ML[], void(*callback)(struct tgl_state *TLS,void *callback_extra, int success, int size, struct tgl_message *list[]), void *callback_extra);
+
+static int get_history_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       int count = -1;
+       int i;
+       int x = fetch_int();
+       assert(x ==(int)CODE_messages_messages_slice || x ==(int)CODE_messages_messages);
+       if (x ==(int)CODE_messages_messages_slice) {
+               count = fetch_int();
+       }
+       assert(fetch_int() == CODE_vector);
+       void **T = q->extra;
+       struct tgl_message **ML = T[0];
+       int list_offset =(long)T[1];
+       int list_size =(long)T[2];
+       tgl_peer_id_t id = tgl_set_peer_id((long)T[4],(long)T[3]);
+       int limit =(long)T[5];
+       int offset =(long)T[6];
+       tfree(T, sizeof(void *) * 7);
+
+       int n = fetch_int();
+
+       if (list_size - list_offset < n) {
+               int new_list_size = 2 * list_size;
+               if (new_list_size - list_offset < n) {
+                       new_list_size = n + list_offset;
+               }
+               ML = trealloc(ML, list_size * sizeof(void *), new_list_size * sizeof(void *));
+               assert(ML);
+               list_size = new_list_size;
+       }
+
+       for (i = 0; i < n; i++) {
+               ML[i + list_offset] = tglf_fetch_alloc_message(TLS);
+       }
+       list_offset += n;
+       offset += n;
+       limit -= n;
+       if (count >= 0 && limit + offset >= count) {
+               limit = count - offset;
+               if (limit < 0) { limit = 0; }
+       }
+       assert(limit >= 0);
+
+       assert(fetch_int() == CODE_vector);
+       n = fetch_int();
+       for (i = 0; i < n; i++) {
+               tglf_fetch_alloc_chat(TLS);
+       }
+       assert(fetch_int() == CODE_vector);
+       n = fetch_int();
+       for (i = 0; i < n; i++) {
+               tglf_fetch_alloc_user(TLS);
+       }
+
+       if (limit <= 0 || x ==(int)CODE_messages_messages) {
+               if (q->callback) {
+                       ((void(*)(struct tgl_state *TLS, void *, int, int, struct tgl_message **))q->callback)(TLS, q->callback_extra, 1, list_offset, ML);
+               }
+               if (list_offset > 0) {
+                       tgl_do_messages_mark_read(TLS, id, ML[0]->id, 0, 0, 0);
+               }
+
+
+               tfree(ML, sizeof(void *) * list_size);
+       } else {
+               _tgl_do_get_history(TLS, id, limit, 0, ML[list_offset - 1]->id, list_offset, list_size, ML, q->callback, q->callback_extra);
+       }
+       return 0;
+}
+
+static int get_history_on_error(struct tgl_state *TLS, struct query *q, int error_code, int error_len, char *error)
+{
+       void **T = q->extra;
+       struct tgl_message **ML = T[0];
+       int list_size =(long)T[2];
+       tfree(T, sizeof(void *) * 7);
+       tfree(ML, sizeof(void *) * list_size);
+
+       if (q->callback) {
+               ((void(*)(struct tgl_state *TLS, void *, int, int, struct tgl_message **))q->callback)(TLS, q->callback_extra, 0, 0, NULL);
+       }
+       return 0;
+}
+
+static struct query_methods get_history_methods = {
+               .on_answer = get_history_on_answer,
+               .on_error = get_history_on_error,
+               .type = TYPE_TO_PARAM(messages_messages)
+};
+
+void tgl_do_get_local_history(struct tgl_state *TLS, tgl_peer_id_t id, int limit, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, struct tgl_message *list[]), void *callback_extra)
+{
+       tgl_peer_t *P = tgl_peer_get(TLS, id);
+       if (!P || !P->last) {
+               if (callback) {
+                       callback(TLS, callback_extra, 0, 0, 0);
+               }
+               return;
+       }
+       struct tgl_message *M = P->last;
+       int count = 1;
+       assert(!M->prev);
+       while(count < limit && M->next) {
+               M = M->next;
+               count ++;
+       }
+       struct tgl_message **ML = talloc(sizeof(void *) * count);
+       M = P->last;
+       ML[0] = M;
+       count = 1;
+       while(count < limit && M->next) {
+               M = M->next;
+               ML[count ++] = M;
+       }
+
+       if (callback) {
+               callback(TLS, callback_extra, 1, count, ML);
+       }
+       tfree(ML, sizeof(void *) * count);
+}
+
+void tgl_do_get_local_history_ext(struct tgl_state *TLS, tgl_peer_id_t id, int offset, int limit, void(*callback)(struct tgl_state *TLS,void *callback_extra, int success, int size, struct tgl_message *list[]), void *callback_extra)
+{
+       tgl_peer_t *P = tgl_peer_get(TLS, id);
+       if (!P || !P->last) {
+               if (callback) {
+                       callback(TLS, callback_extra, 0, 0, 0);
+               }
+               return;
+       }
+       struct tgl_message *M = P->last;
+       int count = 1;
+       assert(!M->prev);
+       while(count < limit + offset && M->next) {
+               M = M->next;
+               count ++;
+       }
+       if (count <= offset) {
+               if (callback) {
+                       callback(TLS, callback_extra, 1, 0, 0);
+               }
+               return;
+       }
+       struct tgl_message **ML = talloc(sizeof(void *) *(count - offset));
+       M = P->last;
+       ML[0] = M;
+       count = 1;
+       while(count < limit && M->next) {
+               M = M->next;
+               if (count >= offset) {
+                       ML[count - offset] = M;
+               }
+               count ++;
+       }
+
+       if (callback) {
+               callback(TLS, callback_extra, 1, count - offset, ML);
+       }
+       tfree(ML, sizeof(void *) *(count) - offset);
+}
+
+void _tgl_do_get_history(struct tgl_state *TLS, tgl_peer_id_t id, int limit, int offset, int max_id, int list_offset, int list_size, struct tgl_message *ML[], void(*callback)(struct tgl_state *TLS,void *callback_extra, int success, int size, struct tgl_message *list[]), void *callback_extra)
+{
+       void **T = talloc(sizeof(void *) * 7);
+       T[0] = ML;
+       T[1] =(void *)(long)list_offset;
+       T[2] =(void *)(long)list_size;
+       T[3] =(void *)(long)tgl_get_peer_id(id);
+       T[4] =(void *)(long)tgl_get_peer_type(id);
+       T[5] =(void *)(long)limit;
+       T[6] =(void *)(long)offset;
+
+       clear_packet();
+       out_int(CODE_messages_get_history);
+       out_peer_id(TLS, id);
+       out_int(offset);
+       out_int(max_id);
+       out_int(limit);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &get_history_methods, T, callback, callback_extra);
+}
+
+void tgl_do_get_history(struct tgl_state *TLS, tgl_peer_id_t id, int limit, int offline_mode, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, struct tgl_message *list[]), void *callback_extra)
+{
+       if (tgl_get_peer_type(id) == TGL_PEER_ENCR_CHAT || offline_mode) {
+               tgl_do_get_local_history(TLS, id, limit, callback, callback_extra);
+               tgl_do_mark_read(TLS, id, 0, 0);
+               return;
+       }
+       _tgl_do_get_history(TLS, id, limit, 0, 0, 0, 0, 0, callback, callback_extra);
+}
+
+void tgl_do_get_history_ext(struct tgl_state *TLS, tgl_peer_id_t id, int offset, int limit, int offline_mode, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, struct tgl_message *list[]), void *callback_extra)
+{
+       if (tgl_get_peer_type(id) == TGL_PEER_ENCR_CHAT || offline_mode) {
+               tgl_do_get_local_history(TLS, id, limit, callback, callback_extra);
+               tgl_do_mark_read(TLS, id, 0, 0);
+               return;
+       }
+       _tgl_do_get_history(TLS, id, limit, offset, 0, 0, 0, 0, callback, callback_extra);
+}
+
+static int get_dialogs_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       unsigned x = fetch_int();
+       assert(x == CODE_messages_dialogs || x == CODE_messages_dialogs_slice);
+       if (x == CODE_messages_dialogs_slice) {
+               fetch_int(); // total_count
+       }
+       assert(fetch_int() == CODE_vector);
+       int n, i;
+       n = fetch_int();
+       int dl_size = n;
+
+       tgl_peer_id_t *PL = talloc0(sizeof(tgl_peer_id_t) * n);
+       int *UC = talloc0(4 * n);
+       int *LM = talloc0(4 * n);
+       for (i = 0; i < n; i++) {
+               assert(fetch_int() ==(int)CODE_dialog);
+               PL[i] = tglf_fetch_peer_id(TLS);
+               LM[i] = fetch_int();
+               UC[i] = fetch_int();
+               assert(skip_type_any(TYPE_TO_PARAM(peer_notify_settings)) >= 0);
+       }
+       assert(fetch_int() == CODE_vector);
+       n = fetch_int();
+       for (i = 0; i < n; i++) {
+               tglf_fetch_alloc_message(TLS);
+       }
+       assert(fetch_int() == CODE_vector);
+       n = fetch_int();
+       for (i = 0; i < n; i++) {
+               tglf_fetch_alloc_chat(TLS);
+       }
+       assert(fetch_int() == CODE_vector);
+       n = fetch_int();
+       for (i = 0; i < n; i++) {
+               tglf_fetch_alloc_user(TLS);
+       }
+
+       if (q->callback) {
+               ((void(*)(struct tgl_state *TLS, void *, int, int, tgl_peer_id_t *, int *, int *))q->callback)(TLS, q->callback_extra, 1, dl_size, PL, LM, UC);
+       }
+       tfree(PL, sizeof(tgl_peer_id_t) * dl_size);
+       tfree(UC, 4 * dl_size);
+       tfree(LM, 4 * dl_size);
+
+       return 0;
+}
+
+static int get_dialogs_on_error(struct tgl_state *TLS, struct query *q, int error_code, int error_len, char *error)
+{
+       if (q->callback) {
+               ((void(*)(struct tgl_state *TLS, void *, int, int, tgl_peer_id_t *, int *, int *))q->callback)(TLS, q->callback_extra, 0, 0, NULL, NULL, NULL);
+       }
+       return 0;
+}
+
+static struct query_methods get_dialogs_methods = {
+               .on_answer = get_dialogs_on_answer,
+               .on_error = get_dialogs_on_error,
+               .type = TYPE_TO_PARAM(messages_dialogs)
+};
+
+void tgl_do_get_dialog_list(struct tgl_state *TLS, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, tgl_peer_id_t peers[], int last_msg_id[], int unread_count[]), void *callback_extra)
+{
+       clear_packet();
+       out_int(CODE_messages_get_dialogs);
+       out_int(0);
+       out_int(0);
+       out_int(1000);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &get_dialogs_methods, 0, callback, callback_extra);
+}
+
+int allow_send_linux_version = 1;
+
+struct send_file {
+       int fd;
+       long long size;
+       long long offset;
+       int part_num;
+       int part_size;
+       long long id;
+       long long thumb_id;
+       tgl_peer_id_t to_id;
+       int flags;
+       char *file_name;
+       int encr;
+       int avatar;
+       unsigned char *iv;
+       unsigned char *init_iv;
+       unsigned char *key;
+       int w;
+       int h;
+       int duration;
+};
+
+static void out_peer_id(struct tgl_state *TLS, tgl_peer_id_t id)
+{
+       tgl_peer_t *U;
+       switch (tgl_get_peer_type(id)) {
+       case TGL_PEER_CHAT:
+               out_int(CODE_input_peer_chat);
+               out_int(tgl_get_peer_id(id));
+               break;
+       case TGL_PEER_USER:
+               U = tgl_peer_get(TLS, id);
+               if (U && U->user.access_hash) {
+                       out_int(CODE_input_peer_foreign);
+                       out_int(tgl_get_peer_id(id));
+                       out_long(U->user.access_hash);
+               } else {
+                       out_int(CODE_input_peer_contact);
+                       out_int(tgl_get_peer_id(id));
+               }
+               break;
+       default:
+               assert(0);
+       }
+}
+
+static void send_part(struct tgl_state *TLS, struct send_file *f, void *callback, void *callback_extra);
+
+static int send_file_part_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       assert(fetch_int() ==(int)CODE_bool_true);
+       send_part(TLS, q->extra, q->callback, q->callback_extra);
+       return 0;
+}
+
+static int send_file_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       assert(fetch_int() ==(int)CODE_messages_stated_message);
+       struct tgl_message *M = tglf_fetch_alloc_message(TLS);
+       assert(fetch_int() == CODE_vector);
+       int n, i;
+       n = fetch_int();
+       for (i = 0; i < n; i++) {
+               tglf_fetch_alloc_chat(TLS);
+       }
+       assert(fetch_int() == CODE_vector);
+       n = fetch_int();
+       for (i = 0; i < n; i++) {
+               tglf_fetch_alloc_user(TLS);
+       }
+       //tglu_fetch_pts();
+       int pts = fetch_int();
+       //tglu_fetch_seq();
+
+       bl_do_msg_set_outbound(TLS, M->id);
+       int seq = fetch_int();
+       if (seq == TLS->seq + 1 && !(TLS->locks & TGL_LOCK_DIFF)) {
+               bl_do_set_pts(TLS, pts);
+               bl_do_msg_seq_update(TLS, M->id);
+       } else {
+               if (seq > TLS->seq + 1) {
+                       vlogprintf(E_NOTICE, "Hole in seq\n");
+                       tgl_do_get_difference(TLS, 0, 0, 0);
+               }
+       }
+
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int, struct tgl_message *))q->callback)(TLS, q->callback_extra, 1, M);
+       }
+       return 0;
+}
+
+static int send_encr_file_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       assert(fetch_int() ==(int)CODE_messages_sent_encrypted_file);
+       struct tgl_message *M = q->extra;
+       fetch_int();
+       int *save = in_ptr;
+
+       assert(skip_type_any(TYPE_TO_PARAM(encrypted_file)) >= 0);
+
+       if (M->flags & FLAG_PENDING) {
+               bl_do_create_message_media_encr_sent(TLS, M->id, save, in_ptr - save);
+               bl_do_msg_update(TLS, M->id);
+       }
+
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int, struct tgl_message *))q->callback)(TLS, q->callback_extra, 1, M);
+       }
+       return 0;
+}
+
+static int set_photo_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       assert(skip_type_any(TYPE_TO_PARAM(photos_photo)) >= 0);
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 1);
+       }
+       return 0;
+}
+
+static int send_file_part_on_error(struct tgl_state *TLS, struct query *q, int error_code, int error_len, char *error)
+{
+       struct send_file *f = q->extra;
+       tfree_str(f->file_name);
+       tfree(f, sizeof(*f));
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 0);
+       }
+       return 0;
+}
+
+static struct query_methods send_file_part_methods = {
+               .on_answer = send_file_part_on_answer,
+               .on_error = send_file_part_on_error,
+               .type = TYPE_TO_PARAM(bool)
+};
+
+static struct query_methods send_file_methods = {
+               .on_answer = send_file_on_answer,
+               .on_error = q_ptr_on_error,
+               .type = TYPE_TO_PARAM(messages_stated_message)
+};
+
+static struct query_methods set_photo_methods = {
+               .on_answer = set_photo_on_answer,
+               .on_error = q_void_on_error,
+               .type = TYPE_TO_PARAM(photos_photo)
+};
+
+static struct query_methods send_encr_file_methods = {
+               .on_answer = send_encr_file_on_answer,
+               .on_error = msg_send_encr_on_error,
+               .type = TYPE_TO_PARAM(messages_sent_encrypted_message)
+};
+
+static void send_avatar_end(struct tgl_state *TLS, struct send_file *f, void *callback, void *callback_extra)
+{
+       if (f->avatar > 0) {
+               out_int(CODE_messages_edit_chat_photo);
+               out_int(f->avatar);
+               out_int(CODE_input_chat_uploaded_photo);
+               if (f->size <(16 << 20)) {
+                       out_int(CODE_input_file);
+               } else {
+                       out_int(CODE_input_file_big);
+               }
+               out_long(f->id);
+               out_int(f->part_num);
+               out_string("");
+               if (f->size <(16 << 20)) {
+                       out_string("");
+               }
+               out_int(CODE_input_photo_crop_auto);
+               tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_file_methods, 0, callback, callback_extra);
+       } else {
+               out_int(CODE_photos_upload_profile_photo);
+               if (f->size <(16 << 20)) {
+                       out_int(CODE_input_file);
+               } else {
+                       out_int(CODE_input_file_big);
+               }
+               out_long(f->id);
+               out_int(f->part_num);
+               char *s = f->file_name + strlen(f->file_name);
+               while(s >= f->file_name && *s != '/') { s --;}
+               out_string(s + 1);
+               if (f->size <(16 << 20)) {
+                       out_string("");
+               }
+               out_string("profile photo");
+               out_int(CODE_input_geo_point_empty);
+               out_int(CODE_input_photo_crop_auto);
+               tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &set_photo_methods, 0, callback, callback_extra);
+       }
+}
+
+static void send_file_unencrypted_end(struct tgl_state *TLS, struct send_file *f, void *callback, void *callback_extra)
+{
+       out_int(CODE_messages_send_media);
+       out_peer_id(TLS, f->to_id);
+       if (f->flags == -1) {
+               out_int(CODE_input_media_uploaded_photo);
+       } else {
+               if (f->thumb_id > 0) {
+                       out_int(CODE_input_media_uploaded_thumb_document);
+               } else {
+                       out_int(CODE_input_media_uploaded_document);
+               }
+       }
+
+       if (f->size <(16 << 20)) {
+               out_int(CODE_input_file);
+       } else {
+               out_int(CODE_input_file_big);
+       }
+
+       out_long(f->id);
+       out_int(f->part_num);
+       char *s = f->file_name + strlen(f->file_name);
+       while(s >= f->file_name && *s != '/') { s --;}
+       out_string(s + 1);
+
+       if (f->size <(16 << 20)) {
+               out_string("");
+       }
+
+       if (f->flags != -1) {
+               out_string(tg_mime_by_filename(f->file_name));
+
+               out_int(CODE_vector);
+               if (f->flags & FLAG_DOCUMENT_IMAGE) {
+                       if (f->flags & FLAG_DOCUMENT_ANIMATED) {
+                               out_int(2);
+                               out_int(CODE_document_attribute_image_size);
+                               out_int(f->w);
+                               out_int(f->h);
+                               out_int(CODE_document_attribute_animated);
+                       } else {
+                               out_int(2);
+                               out_int(CODE_document_attribute_image_size);
+                               out_int(f->w);
+                               out_int(f->h);
+                       }
+               } else if (f->flags & FLAG_DOCUMENT_AUDIO) {
+                       out_int(1);
+                       out_int(CODE_document_attribute_audio);
+                       out_int(f->duration);
+               } else if (f->flags & FLAG_DOCUMENT_VIDEO) {
+                       out_int(1);
+                       out_int(CODE_document_attribute_video);
+                       out_int(f->duration);
+                       out_int(f->w);
+                       out_int(f->h);
+               } else if (f->flags & FLAG_DOCUMENT_STICKER) {
+                       out_int(1);
+                       out_int(CODE_document_attribute_sticker);
+               } else {
+                       out_int(0);
+               }
+
+               if (f->thumb_id > 0) {
+                       out_int(CODE_input_file);
+                       out_long(f->thumb_id);
+                       out_int(1);
+                       out_string("thumb.jpg");
+                       out_string("");
+               }
+       }
+       long long r;
+       tglt_secure_random(&r, 8);
+       out_long(r);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_file_methods, 0, callback, callback_extra);
+       tfree_str(f->file_name);
+       tfree(f, sizeof(*f));
+}
+
+static void send_file_encrypted_end(struct tgl_state *TLS, struct send_file *f, void *callback, void *callback_extra)
+{
+       out_int(CODE_messages_send_encrypted_file);
+       out_int(CODE_input_encrypted_chat);
+       out_int(tgl_get_peer_id(f->to_id));
+       tgl_peer_t *P = tgl_peer_get(TLS, f->to_id);
+       assert(P);
+       out_long(P->encr_chat.access_hash);
+       long long r;
+       tglt_secure_random(&r, 8);
+       out_long(r);
+       encr_start();
+       if (P->encr_chat.layer <= 16) {
+               out_int(CODE_decrypted_message_l16);
+       } else {
+               out_int(CODE_decrypted_message_layer);
+               out_random(15 + 4 *(lrand48() % 3));
+               out_int(TGL_ENCRYPTED_LAYER);
+               out_int(2 * P->encr_chat.in_seq_no +(P->encr_chat.admin_id != TLS->our_id));
+               out_int(2 * P->encr_chat.out_seq_no +(P->encr_chat.admin_id == TLS->our_id));
+               out_int(CODE_decrypted_message);
+       }
+       out_long(r);
+       if (P->encr_chat.layer < 17) {
+               out_random(15 + 4 *(lrand48() % 3));
+       } else {
+               out_int(P->encr_chat.ttl);
+       }
+       out_string("");
+       int *save_ptr = packet_ptr;
+       if (f->flags == -1) {
+               out_int(CODE_decrypted_message_media_photo);
+       } else if ((f->flags & FLAG_DOCUMENT_VIDEO)) {
+               out_int(CODE_decrypted_message_media_video);
+       } else if ((f->flags & FLAG_DOCUMENT_AUDIO)) {
+               out_int(CODE_decrypted_message_media_audio);
+       } else {
+               out_int(CODE_decrypted_message_media_document);
+       }
+       if (f->flags == -1 || !(f->flags & FLAG_DOCUMENT_AUDIO)) {
+               out_cstring("", 0);
+               out_int(90);
+               out_int(90);
+       }
+
+       if (f->flags == -1) {
+               out_int(f->w);
+               out_int(f->h);
+       } else if (f->flags & FLAG_DOCUMENT_VIDEO) {
+               out_int(f->duration);
+               out_string(tg_mime_by_filename(f->file_name));
+               out_int(f->w);
+               out_int(f->h);
+       } else if (f->flags & FLAG_DOCUMENT_AUDIO) {
+               out_int(f->duration);
+               out_string(tg_mime_by_filename(f->file_name));
+       } else {
+               out_string("");
+               out_string(tg_mime_by_filename(f->file_name));
+               // document
+       }
+
+       out_int(f->size);
+       out_cstring((void *)f->key, 32);
+       out_cstring((void *)f->init_iv, 32);
+
+       bl_do_create_message_media_encr_pending(TLS, r, TLS->our_id, tgl_get_peer_type(f->to_id), tgl_get_peer_id(f->to_id), time(0), 0, 0, save_ptr, packet_ptr - save_ptr);
+
+       encr_finish(&P->encr_chat);
+       if (f->size <(16 << 20)) {
+               out_int(CODE_input_encrypted_file_uploaded);
+       } else {
+               out_int(CODE_input_encrypted_file_big_uploaded);
+       }
+       out_long(f->id);
+       out_int(f->part_num);
+       if (f->size <(16 << 20)) {
+               out_string("");
+       }
+
+       unsigned char md5[16];
+       unsigned char str[64];
+       memcpy(str, f->key, 32);
+       memcpy(str + 32, f->init_iv, 32);
+       MD5(str, 64, md5);
+       out_int((*(int *)md5) ^(*(int *)(md5 + 4)));
+
+       tfree_secure(f->iv, 32);
+       struct tgl_message *M = tgl_message_get(TLS, r);
+       assert(M);
+
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_encr_file_methods, M, callback, callback_extra);
+
+       tfree_str(f->file_name);
+       tfree(f, sizeof(*f));
+}
+
+static void send_file_end(struct tgl_state *TLS, struct send_file *f, void *callback, void *callback_extra)
+{
+       TLS->cur_uploaded_bytes -= f->size;
+       TLS->cur_uploading_bytes -= f->size;
+       clear_packet();
+
+       if (f->avatar) {
+               send_avatar_end(TLS, f, callback, callback_extra);
+               return;
+       }
+       if (!f->encr) {
+               send_file_unencrypted_end(TLS, f, callback, callback_extra);
+               return;
+       }
+       send_file_encrypted_end(TLS, f, callback, callback_extra);
+       return;
+}
+
+static void send_part(struct tgl_state *TLS, struct send_file *f, void *callback, void *callback_extra)
+{
+       if (f->fd >= 0) {
+               if (!f->part_num) {
+                       TLS->cur_uploading_bytes += f->size;
+               }
+               clear_packet();
+               if (f->size <(16 << 20)) {
+                       out_int(CODE_upload_save_file_part);
+                       out_long(f->id);
+                       out_int(f->part_num ++);
+               } else {
+                       out_int(CODE_upload_save_big_file_part);
+                       out_long(f->id);
+                       out_int(f->part_num ++);
+                       out_int((f->size + f->part_size - 1) / f->part_size);
+               }
+               static char buf[512 << 10];
+               int x = read(f->fd, buf, f->part_size);
+               assert(x > 0);
+               f->offset += x;
+               TLS->cur_uploaded_bytes += x;
+
+               if (f->encr) {
+                       if (x & 15) {
+                               assert(f->offset == f->size);
+                               tglt_secure_random(buf + x,(-x) & 15);
+                               x =(x + 15) & ~15;
+                       }
+
+                       AES_KEY aes_key;
+                       AES_set_encrypt_key(f->key, 256, &aes_key);
+                       AES_ige_encrypt((void *)buf,(void *)buf, x, &aes_key, f->iv, 1);
+                       memset(&aes_key, 0, sizeof(aes_key));
+               }
+               out_cstring(buf, x);
+               vlogprintf(E_DEBUG, "offset=%lld size=%lld\n", f->offset, f->size);
+               if (f->offset == f->size) {
+                       close(f->fd);
+                       f->fd = -1;
+               } else {
+                       assert(f->part_size == x);
+               }
+               //update_prompt();
+               tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_file_part_methods, f, callback, callback_extra);
+       } else {
+               send_file_end(TLS, f, callback, callback_extra);
+       }
+}
+
+static void send_file_thumb(struct tgl_state *TLS, struct send_file *f, const void *thumb_data, int thumb_len, void *callback, void *callback_extra)
+{
+       clear_packet();
+       f->thumb_id = lrand48() *(1ll << 32) + lrand48();
+       out_int(CODE_upload_save_file_part);
+       out_long(f->thumb_id);
+       out_int(0);
+       out_cstring((void *)thumb_data, thumb_len);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_file_part_methods, f, callback, callback_extra);
+}
+
+static void _tgl_do_send_photo(struct tgl_state *TLS, int flags, tgl_peer_id_t to_id, char *file_name, int avatar, int w, int h, int duration, const void *thumb_data, int thumb_len, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra)
+{
+       int fd = open(file_name, O_RDONLY);
+       if (fd < 0) {
+               vlogprintf(E_WARNING, "No such file '%s'\n", file_name);
+               if (callback) {
+                       callback(TLS, callback_extra, 0, 0);
+               }
+               return;
+       }
+       struct stat buf;
+       fstat(fd, &buf);
+       long long size = buf.st_size;
+       if (size <= 0) {
+               vlogprintf(E_WARNING, "File has zero length\n");
+               close(fd);
+               if (callback) {
+                       callback(TLS, callback_extra, 0, 0);
+               }
+               return;
+       }
+       struct send_file *f = talloc0(sizeof(*f));
+       f->fd = fd;
+       f->size = size;
+       f->offset = 0;
+       f->part_num = 0;
+       f->avatar = avatar;
+       int tmp =((size + 2999) / 3000);
+       f->part_size =(1 << 14);
+       while(f->part_size < tmp) {
+               f->part_size *= 2;
+       }
+       f->flags = flags;
+
+       if (f->part_size >(512 << 10)) {
+               close(fd);
+               vlogprintf(E_WARNING, "Too big file. Maximal supported size is %d.\n",(512 << 10) * 1000);
+               tfree(f, sizeof(*f));
+               if (callback) {
+                       callback(TLS, callback_extra, 0, 0);
+               }
+               return;
+       }
+
+       tglt_secure_random(&f->id, 8);
+       f->to_id = to_id;
+       f->flags = flags;
+       f->file_name = tstrdup(file_name);
+       f->w = w;
+       f->h = h;
+       f->duration = duration;
+
+       if (tgl_get_peer_type(f->to_id) == TGL_PEER_ENCR_CHAT) {
+               f->encr = 1;
+               f->iv = talloc(32);
+               tglt_secure_random(f->iv, 32);
+               f->init_iv = talloc(32);
+               memcpy(f->init_iv, f->iv, 32);
+               f->key = talloc(32);
+               tglt_secure_random(f->key, 32);
+       }
+
+       if (!f->encr && f->flags != -1 && thumb_len > 0) {
+               send_file_thumb(TLS, f, thumb_data, thumb_len, callback, callback_extra);
+       } else {
+               send_part(TLS, f, callback, callback_extra);
+       }
+}
+
+void tgl_do_send_document_ex(struct tgl_state *TLS, int flags, tgl_peer_id_t to_id, char *file_name, int w, int h, int duration, const void *thumb, int thumb_len, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra)
+{
+       _tgl_do_send_photo(TLS, flags, to_id, file_name, 0, w, h, duration, thumb, thumb_len, callback, callback_extra);
+}
+
+void tgl_do_send_document(struct tgl_state *TLS, int flags, tgl_peer_id_t to_id, char *file_name, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra)
+{
+       if (flags == -2) {
+               char *mime_type = tg_mime_by_filename(file_name);
+               if (!memcmp(mime_type, "image/", 6)) {
+                       flags = -1;
+               } else if (!memcmp(mime_type, "video/", 6)) {
+                       flags = FLAG_DOCUMENT_VIDEO;
+               } else if (!memcmp(mime_type, "audio/", 6)) {
+                       flags = FLAG_DOCUMENT_AUDIO;
+               } else {
+                       flags = 0;
+               }
+       }
+       _tgl_do_send_photo(TLS, flags, to_id, file_name, 0, 100, 100, 100, 0, 0, callback, callback_extra);
+}
+
+void tgl_do_set_chat_photo(struct tgl_state *TLS, tgl_peer_id_t chat_id, char *file_name, void(*callback)(struct tgl_state *TLS,void *callback_extra, int success, struct tgl_message *M), void *callback_extra)
+{
+       assert(tgl_get_peer_type(chat_id) == TGL_PEER_CHAT);
+       _tgl_do_send_photo(TLS, -1, chat_id, file_name, tgl_get_peer_id(chat_id), 0, 0, 0, 0, 0, callback, callback_extra);
+}
+
+void tgl_do_set_profile_photo(struct tgl_state *TLS, char *file_name, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra)
+{
+       _tgl_do_send_photo(TLS, -1, TGL_MK_USER(TLS->our_id), file_name, -1, 0, 0, 0, 0, 0,(void *)callback, callback_extra);
+}
+
+int set_profile_name_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       struct tgl_user *U = tglf_fetch_alloc_user(TLS);
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int, struct tgl_user  *))q->callback)(TLS, q->callback_extra, 1, U);
+       }
+       return 0;
+}
+
+static struct query_methods set_profile_name_methods = {
+               .on_answer = set_profile_name_on_answer,
+               .on_error = q_ptr_on_error,
+               .type = TYPE_TO_PARAM(user)
+};
+
+void tgl_do_set_profile_name(struct tgl_state *TLS, char *first_name, char *last_name, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *U), void *callback_extra)
+{
+       clear_packet();
+       out_int(CODE_account_update_profile);
+       out_string(first_name);
+       out_string(last_name);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &set_profile_name_methods, 0, callback, callback_extra);
+}
+
+void tgl_do_set_username(struct tgl_state *TLS, char *name, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *U), void *callback_extra)
+{
+       clear_packet();
+       out_int(CODE_account_update_username);
+       out_string(name);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &set_profile_name_methods, 0, callback, callback_extra);
+}
+
+int contact_search_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       assert(fetch_int() == CODE_contacts_found);
+       assert(fetch_int() == CODE_vector);
+       int n = fetch_int();
+       int i;
+       for (i = 0; i < n; i++) {
+               assert(fetch_int() ==(int)CODE_contact_found);
+               fetch_int();
+       }
+       assert(fetch_int() == CODE_vector);
+       n = fetch_int();
+
+       struct tgl_user **UL = talloc(sizeof(void *) * n);
+       for (i = 0; i < n; i++) {
+               UL[i] = tglf_fetch_alloc_user(TLS);
+       }
+
+       if (q->callback) {
+               ((void(*)(struct tgl_state *,void *, int, int, struct tgl_user  **))q->callback)(TLS, q->callback_extra, 1, n, UL);
+       }
+       tfree(UL, sizeof(void *) * n);
+       return 0;
+}
+
+static struct query_methods contact_search_methods = {
+               .on_answer = contact_search_on_answer,
+               .on_error = q_list_on_error,
+               .type = TYPE_TO_PARAM(contacts_found)
+};
+
+void tgl_do_contact_search(struct tgl_state *TLS, char *name, int limit, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, int cnt, struct tgl_user *U[]), void *callback_extra)
+{
+       clear_packet();
+       out_int(CODE_contacts_search);
+       out_string(name);
+       out_int(limit);
+
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &contact_search_methods, 0, callback, callback_extra);
+}
+
+static int fwd_msg_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       assert(fetch_int() ==(int)CODE_messages_stated_message);
+       struct tgl_message *M = tglf_fetch_alloc_message(TLS);
+       assert(fetch_int() == CODE_vector);
+       int n, i;
+       n = fetch_int();
+       for (i = 0; i < n; i++) {
+               tglf_fetch_alloc_chat(TLS);
+       }
+       assert(fetch_int() == CODE_vector);
+       n = fetch_int();
+       for (i = 0; i < n; i++) {
+               tglf_fetch_alloc_user(TLS);
+       }
+       //tglu_fetch_pts();
+       int pts = fetch_int();
+
+       bl_do_msg_set_outbound(TLS, M->id);
+       int seq = fetch_int();
+       if (seq == TLS->seq + 1 && !(TLS->locks & TGL_LOCK_DIFF)) {
+               bl_do_set_pts(TLS, pts);
+               bl_do_msg_seq_update(TLS, M->id);
+       } else {
+               if (seq > TLS->seq + 1) {
+                       vlogprintf(E_NOTICE, "Hole in seq\n");
+                       tgl_do_get_difference(TLS, 0, 0, 0);
+               }
+       }
+
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int, struct tgl_message *))q->callback)(TLS, q->callback_extra, 1, M);
+       }
+       return 0;
+}
+
+static struct query_methods fwd_msg_methods = {
+               .on_answer = fwd_msg_on_answer,
+               .on_error = q_ptr_on_error,
+               .type = TYPE_TO_PARAM(messages_stated_message)
+};
+
+void tgl_do_forward_message(struct tgl_state *TLS, tgl_peer_id_t id, int n, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra)
+{
+       if (tgl_get_peer_type(id) == TGL_PEER_ENCR_CHAT) {
+               vlogprintf(E_WARNING, "Can not forward messages from secret chat\n");
+               if (callback) {
+                       callback(TLS, callback_extra, 0, 0);
+               }
+               return;
+       }
+       clear_packet();
+       out_int(CODE_messages_forward_message);
+       out_peer_id(TLS, id);
+       out_int(n);
+       long long r;
+       tglt_secure_random(&r, 8);
+       out_long(r);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &fwd_msg_methods, 0, callback, callback_extra);
+}
+
+void tgl_do_send_contact(struct tgl_state *TLS, tgl_peer_id_t id, const char *phone, int phone_len, const char *first_name, int first_name_len, const char *last_name, int last_name_len, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra)
+{
+       if (tgl_get_peer_type(id) == TGL_PEER_ENCR_CHAT) {
+               if (callback) {
+                       callback(TLS, callback_extra, 0, 0);
+               }
+               return;
+       }
+       long long t;
+       tglt_secure_random(&t, 8);
+       vlogprintf(E_DEBUG, "t = %lld\n", t);
+
+       clear_packet();
+       out_int(CODE_messages_send_media);
+       out_peer_id(TLS, id);
+       out_int(CODE_input_media_contact);
+       out_cstring(phone, phone_len);
+       out_cstring(first_name, first_name_len);
+       out_cstring(last_name, last_name_len);
+       out_long(t);
+
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &fwd_msg_methods, 0, callback, callback_extra);
+}
+
+void tgl_do_forward_media(struct tgl_state *TLS, tgl_peer_id_t id, int n, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra)
+{
+       if (tgl_get_peer_type(id) == TGL_PEER_ENCR_CHAT) {
+               vlogprintf(E_WARNING, "Can not forward messages from secret chat\n");
+               if (callback) {
+                       callback(TLS, callback_extra, 0, 0);
+               }
+               return;
+       }
+       struct tgl_message *M = tgl_message_get(TLS, n);
+       if (!M) {
+               vlogprintf(E_WARNING, "No such message\n");
+               if (callback) {
+                       callback(TLS, callback_extra, 0, 0);
+               }
+               return;
+       }
+       if (M->flags & FLAG_ENCRYPTED) {
+               vlogprintf(E_WARNING, "Can not forward media from encrypted message\n");
+               if (callback) {
+                       callback(TLS, callback_extra, 0, 0);
+               }
+               return;
+       }
+       if (M->media.type != tgl_message_media_photo && M->media.type != tgl_message_media_document) {
+               vlogprintf(E_WARNING, "Can only forward photo/document\n");
+               if (callback) {
+                       callback(TLS, callback_extra, 0, 0);
+               }
+               return;
+       }
+       clear_packet();
+       out_int(CODE_messages_send_media);
+       out_peer_id(TLS, id);
+       switch (M->media.type) {
+       case tgl_message_media_photo:
+               out_int(CODE_input_media_photo);
+               out_int(CODE_input_photo);
+               out_long(M->media.photo.id);
+               out_long(M->media.photo.access_hash);
+               break;
+       case tgl_message_media_document:
+               out_int(CODE_input_media_document);
+               out_int(CODE_input_document);
+               out_long(M->media.document.id);
+               out_long(M->media.document.access_hash);
+               break;
+       default:
+               assert(0);
+       }
+       long long r;
+       tglt_secure_random(&r, 8);
+       out_long(r);
+
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &fwd_msg_methods, 0, callback, callback_extra);
+}
+
+void tgl_do_send_location(struct tgl_state *TLS, tgl_peer_id_t id, double latitude, double longitude, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra)
+{
+       if (tgl_get_peer_type(id) == TGL_PEER_ENCR_CHAT) {
+               clear_packet();
+               out_int(CODE_messages_send_encrypted);
+               out_int(CODE_input_encrypted_chat);
+               out_int(tgl_get_peer_id(id));
+               tgl_peer_t *P = tgl_peer_get(TLS, id);
+               assert(P);
+               out_long(P->encr_chat.access_hash);
+
+               long long r;
+               tglt_secure_random(&r, 8);
+               out_long(r);
+               encr_start();
+               if (P->encr_chat.layer <= 16) {
+                       out_int(CODE_decrypted_message_l16);
+               } else {
+                       out_int(CODE_decrypted_message_layer);
+                       out_random(15 + 4 *(lrand48() % 3));
+                       out_int(TGL_ENCRYPTED_LAYER);
+                       out_int(2 * P->encr_chat.in_seq_no +(P->encr_chat.admin_id != TLS->our_id));
+                       out_int(2 * P->encr_chat.out_seq_no +(P->encr_chat.admin_id == TLS->our_id));
+                       out_int(CODE_decrypted_message);
+               }
+               out_long(r);
+               if (P->encr_chat.layer < 17) {
+                       out_random(15 + 4 *(lrand48() % 3));
+               } else {
+                       out_int(P->encr_chat.ttl);
+               }
+               out_string("");
+               int *save_ptr = packet_ptr;
+               out_int(CODE_decrypted_message_media_geo_point);
+               out_double(latitude);
+               out_double(longitude);
+
+               bl_do_create_message_media_encr_pending(TLS, r, TLS->our_id, tgl_get_peer_type(id), tgl_get_peer_id(id), time(0), 0, 0, save_ptr, packet_ptr - save_ptr);
+
+               encr_finish(&P->encr_chat);
+
+               struct tgl_message *M = tgl_message_get(TLS, r);
+               assert(M);
+
+               tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &msg_send_encr_methods, M, callback, callback_extra);
+       } else {
+               long long t;
+               tglt_secure_random(&t, 8);
+               vlogprintf(E_DEBUG, "t = %lld\n", t);
+
+               clear_packet();
+               out_int(CODE_messages_send_media);
+               out_peer_id(TLS, id);
+               out_int(CODE_input_media_geo_point);
+               out_int(CODE_input_geo_point);
+               out_double(latitude);
+               out_double(longitude);
+               out_long(t);
+
+               tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &fwd_msg_methods, 0, callback, callback_extra);
+       }
+}
+
+static int rename_chat_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       assert(fetch_int() ==(int)CODE_messages_stated_message);
+       struct tgl_message *M = tglf_fetch_alloc_message(TLS);
+       assert(fetch_int() == CODE_vector);
+       int n, i;
+       n = fetch_int();
+       for (i = 0; i < n; i++) {
+               tglf_fetch_alloc_chat(TLS);
+       }
+       assert(fetch_int() == CODE_vector);
+       n = fetch_int();
+       for (i = 0; i < n; i++) {
+               tglf_fetch_alloc_user(TLS);
+       }
+
+       int pts = fetch_int();
+
+       int seq = fetch_int();
+       if (seq == TLS->seq + 1 && !(TLS->locks & TGL_LOCK_DIFF)) {
+               bl_do_set_pts(TLS, pts);
+               bl_do_msg_seq_update(TLS, M->id);
+       } else {
+               if (seq > TLS->seq + 1) {
+                       vlogprintf(E_NOTICE, "Hole in seq\n");
+                       tgl_do_get_difference(TLS, 0, 0, 0);
+               }
+       }
+
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int, struct tgl_message *))q->callback)(TLS, q->callback_extra, 1, M);
+       }
+       return 0;
+}
+
+static struct query_methods rename_chat_methods = {
+               .on_answer = rename_chat_on_answer,
+               .on_error = q_ptr_on_error,
+               .type = TYPE_TO_PARAM(messages_stated_message)
+};
+
+void tgl_do_rename_chat(struct tgl_state *TLS, tgl_peer_id_t id, char *name, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra)
+{
+       clear_packet();
+       out_int(CODE_messages_edit_chat_title);
+       assert(tgl_get_peer_type(id) == TGL_PEER_CHAT);
+       out_int(tgl_get_peer_id(id));
+       out_string(name);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &rename_chat_methods, 0, callback, callback_extra);
+}
+
+static int chat_info_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       struct tgl_chat *C = tglf_fetch_alloc_chat_full(TLS);
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int, struct tgl_chat *))q->callback)(TLS, q->callback_extra, 1, C);
+       }
+       return 0;
+}
+
+static struct query_methods chat_info_methods = {
+               .on_answer = chat_info_on_answer,
+               .on_error = q_ptr_on_error,
+               .type = TYPE_TO_PARAM(messages_chat_full)
+};
+
+void tgl_do_get_chat_info(struct tgl_state *TLS, tgl_peer_id_t id, int offline_mode, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_chat *C), void *callback_extra)
+{
+       if (offline_mode) {
+               tgl_peer_t *C = tgl_peer_get(TLS, id);
+               if (!C) {
+                       vlogprintf(E_WARNING, "No such chat\n");
+                       if (callback) {
+                               callback(TLS, callback_extra, 0, 0);
+                       }
+               } else {
+                       //print_chat_info(&C->chat);
+                       if (callback) {
+                               callback(TLS, callback_extra, 1, &C->chat);
+                       }
+               }
+               return;
+       }
+       clear_packet();
+       out_int(CODE_messages_get_full_chat);
+       assert(tgl_get_peer_type(id) == TGL_PEER_CHAT);
+       out_int(tgl_get_peer_id(id));
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &chat_info_methods, 0, callback, callback_extra);
+}
+
+static int user_info_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       struct tgl_user *U = tglf_fetch_alloc_user_full(TLS);
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int, struct tgl_user *))q->callback)(TLS, q->callback_extra, 1, U);
+       }
+       return 0;
+}
+
+static struct query_methods user_info_methods = {
+               .on_answer = user_info_on_answer,
+               .on_error = q_ptr_on_error,
+               .type = TYPE_TO_PARAM(user_full)
+};
+
+void tgl_do_get_user_info(struct tgl_state *TLS, tgl_peer_id_t id, int offline_mode, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *U), void *callback_extra)
+{
+       if (offline_mode) {
+               tgl_peer_t *C = tgl_peer_get(TLS, id);
+               if (!C) {
+                       vlogprintf(E_WARNING, "No such user\n");
+                       if (callback) {
+                               callback(TLS, callback_extra, 0, 0);
+                       }
+               } else {
+                       if (callback) {
+                               callback(TLS, callback_extra, 1, &C->user);
+                       }
+               }
+               return;
+       }
+       clear_packet();
+       out_int(CODE_users_get_full_user);
+       assert(tgl_get_peer_type(id) == TGL_PEER_USER);
+       tgl_peer_t *U = tgl_peer_get(TLS, id);
+       if (U && U->user.access_hash) {
+               out_int(CODE_input_user_foreign);
+               out_int(tgl_get_peer_id(id));
+               out_long(U->user.access_hash);
+       } else {
+               out_int(CODE_input_user_contact);
+               out_int(tgl_get_peer_id(id));
+       }
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &user_info_methods, 0, callback, callback_extra);
+}
+
+struct download {
+       int offset;
+       int size;
+       long long volume;
+       long long secret;
+       long long access_hash;
+       int local_id;
+       int dc;
+       int next;
+       int fd;
+       char *name;
+       char *ext;
+       long long id;
+       unsigned char *iv;
+       unsigned char *key;
+       int type;
+       int refcnt;
+};
+
+
+static void end_load(struct tgl_state *TLS, struct download *D, void *callback, void *callback_extra)
+{
+       TLS->cur_downloading_bytes -= D->size;
+       TLS->cur_downloaded_bytes -= D->size;
+       close(D->fd);
+
+       if (callback) {
+               ((void(*)(struct tgl_state *, void *, int, char *))callback)(TLS, callback_extra, 1, D->name);
+       }
+
+       if (D->iv) {
+               tfree_secure(D->iv, 32);
+       }
+
+       tfree_str(D->name);
+       tfree(D, sizeof(*D));
+}
+
+static void load_next_part(struct tgl_state *TLS, struct download *D, void *callback, void *callback_extra);
+
+static int download_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       assert(fetch_int() ==(int)CODE_upload_file);
+       unsigned x = fetch_int();
+       assert(x);
+       struct download *D = q->extra;
+       if (D->fd == -1) {
+               D->fd = open(D->name, O_CREAT | O_WRONLY, 0640);
+               if (D->fd < 0) {
+                       vlogprintf(E_ERROR, "Can not open for writing: %m\n");
+                       assert(D->fd >= 0);
+               }
+       }
+       fetch_int(); // mtime
+       int len = prefetch_strlen();
+       assert(len >= 0);
+       TLS->cur_downloaded_bytes += len;
+       //update_prompt();
+       if (D->iv) {
+               unsigned char *ptr =(void *)fetch_str(len);
+               assert(!(len & 15));
+               AES_KEY aes_key;
+               AES_set_decrypt_key(D->key, 256, &aes_key);
+               AES_ige_encrypt(ptr, ptr, len, &aes_key, D->iv, 0);
+               memset(&aes_key, 0, sizeof(aes_key));
+               if (len > D->size - D->offset) {
+                       len = D->size - D->offset;
+               }
+               assert(write(D->fd, ptr, len) == len);
+       } else {
+               assert(write(D->fd, fetch_str(len), len) == len);
+       }
+       D->offset += len;
+       D->refcnt --;
+       if (D->offset < D->size) {
+               load_next_part(TLS, D, q->callback, q->callback_extra);
+               return 0;
+       } else {
+               if (!D->refcnt) {
+                       end_load(TLS, D, q->callback, q->callback_extra);
+               }
+               return 0;
+       }
+}
+
+static int download_on_error(struct tgl_state *TLS, struct query *q, int error_code, int error_len, char *error)
+{
+       struct download *D = q->extra;
+       if (D->fd >= 0) {
+               close(D->fd);
+       }
+
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int, char *))q->callback)(TLS, q->callback_extra, 0, NULL);
+       }
+
+       if (D->iv) {
+               tfree_secure(D->iv, 32);
+       }
+       tfree_str(D->name);
+       if (D->ext) {
+               tfree_str(D->ext);
+       }
+       tfree(D, sizeof(*D));
+       return 0;
+}
+
+static struct query_methods download_methods = {
+               .on_answer = download_on_answer,
+               .on_error = download_on_error,
+               .type = TYPE_TO_PARAM(upload_file)
+};
+
+static void load_next_part(struct tgl_state *TLS, struct download *D, void *callback, void *callback_extra)
+{
+       if (!D->offset) {
+               static char buf[PATH_MAX];
+               int l;
+               if (!D->id) {
+                       l = tsnprintf(buf, sizeof(buf), "%s/download_%lld_%d.jpg", TLS->downloads_directory, D->volume, D->local_id);
+               } else {
+                       if (D->ext) {
+                               l = tsnprintf(buf, sizeof(buf), "%s/download_%lld.%s", TLS->downloads_directory, D->id, D->ext);
+                       } else {
+                               l = tsnprintf(buf, sizeof(buf), "%s/download_%lld", TLS->downloads_directory, D->id);
+                       }
+               }
+               if (l >=(int) sizeof(buf)) {
+                       vlogprintf(E_ERROR, "Download filename is too long");
+                       exit(1);
+               }
+               D->name = tstrdup(buf);
+               struct stat st;
+               if (stat(buf, &st) >= 0) {
+                       D->offset = st.st_size;
+                       if (D->offset >= D->size) {
+                               TLS->cur_downloading_bytes += D->size;
+                               TLS->cur_downloaded_bytes += D->offset;
+                               vlogprintf(E_NOTICE, "Already downloaded\n");
+                               end_load(TLS, D, callback, callback_extra);
+                               return;
+                       }
+               }
+
+               TLS->cur_downloading_bytes += D->size;
+               TLS->cur_downloaded_bytes += D->offset;
+       }
+       D->refcnt ++;
+       clear_packet();
+       out_int(CODE_upload_get_file);
+       if (!D->id) {
+               out_int(CODE_input_file_location);
+               out_long(D->volume);
+               out_int(D->local_id);
+               out_long(D->secret);
+       } else {
+               if (D->iv) {
+                       out_int(CODE_input_encrypted_file_location);
+               } else {
+                       out_int(D->type);
+               }
+               out_long(D->id);
+               out_long(D->access_hash);
+       }
+       out_int(D->offset);
+       out_int(1 << 14);
+       tglq_send_query(TLS, TLS->DC_list[D->dc], packet_ptr - packet_buffer, packet_buffer, &download_methods, D, callback, callback_extra);
+}
+
+void tgl_do_load_photo_size(struct tgl_state *TLS, struct tgl_photo_size *P, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, char *filename), void *callback_extra)
+{
+       if (!P->loc.dc) {
+               vlogprintf(E_WARNING, "Bad video thumb\n");
+               if (callback) {
+                       callback(TLS, callback_extra, 0, 0);
+               }
+               return;
+       }
+
+       assert(P);
+       struct download *D = talloc0(sizeof(*D));
+       D->id = 0;
+       D->offset = 0;
+       D->size = P->size;
+       D->volume = P->loc.volume;
+       D->dc = P->loc.dc;
+       D->local_id = P->loc.local_id;
+       D->secret = P->loc.secret;
+       D->name = 0;
+       D->fd = -1;
+       load_next_part(TLS, D, callback, callback_extra);
+}
+
+void tgl_do_load_photo(struct tgl_state *TLS, struct tgl_photo *photo, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, char *filename), void *callback_extra)
+{
+       if (!photo->sizes_num) {
+               vlogprintf(E_WARNING, "No sizes\n");
+               if (callback) {
+                       callback(TLS, callback_extra, 0, 0);
+               }
+               return;
+       }
+       int max = -1;
+       int maxi = 0;
+       int i;
+       for (i = 0; i < photo->sizes_num; i++) {
+               if (photo->sizes[i].w + photo->sizes[i].h > max) {
+                       max = photo->sizes[i].w + photo->sizes[i].h;
+                       maxi = i;
+               }
+       }
+       tgl_do_load_photo_size(TLS, &photo->sizes[maxi], callback, callback_extra);
+}
+
+void tgl_do_load_document_thumb(struct tgl_state *TLS, struct tgl_document *video, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, char *filename), void *callback_extra)
+{
+       tgl_do_load_photo_size(TLS, &video->thumb, callback, callback_extra);
+}
+
+void tgl_do_load_document(struct tgl_state *TLS, struct tgl_document *V, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, char *filename), void *callback_extra)
+{
+       assert(V);
+       struct download *D = talloc0(sizeof(*D));
+       D->offset = 0;
+       D->size = V->size;
+       D->id = V->id;
+       D->access_hash = V->access_hash;
+       D->dc = V->dc_id;
+       D->name = 0;
+       D->fd = -1;
+       D->type = CODE_input_document_file_location;
+       if (V->mime_type) {
+               char *r = tg_extension_by_mime(V->mime_type);
+               if (r) {
+                       D->ext = tstrdup(r);
+               }
+       }
+       load_next_part(TLS, D, callback, callback_extra);
+}
+
+void tgl_do_load_encr_document(struct tgl_state *TLS, struct tgl_encr_document *V, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, char *filename), void *callback_extra)
+{
+       assert(V);
+       struct download *D = talloc0(sizeof(*D));
+       D->offset = 0;
+       D->size = V->size;
+       D->id = V->id;
+       D->access_hash = V->access_hash;
+       D->dc = V->dc_id;
+       D->name = 0;
+       D->fd = -1;
+       D->key = V->key;
+       D->iv = talloc(32);
+       memcpy(D->iv, V->iv, 32);
+       if (V->mime_type) {
+               char *r = tg_extension_by_mime(V->mime_type);
+               if (r) {
+                       D->ext = tstrdup(r);
+               }
+       }
+       load_next_part(TLS, D, callback, callback_extra);
+
+       unsigned char md5[16];
+       unsigned char str[64];
+       memcpy(str, V->key, 32);
+       memcpy(str + 32, V->iv, 32);
+       MD5(str, 64, md5);
+       assert(V->key_fingerprint ==((*(int *)md5) ^(*(int *)(md5 + 4))));
+}
+
+static int import_auth_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       assert(fetch_int() ==(int)CODE_auth_authorization);
+       fetch_int(); // expires
+       tglf_fetch_alloc_user(TLS);
+
+       bl_do_dc_signed(TLS,((struct tgl_dc *)q->extra)->id);
+
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 1);
+       }
+       return 0;
+}
+
+static struct query_methods import_auth_methods = {
+               .on_answer = import_auth_on_answer,
+               .on_error = fail_on_error,
+               .type = TYPE_TO_PARAM(auth_authorization)
+};
+
+static int export_auth_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       assert(fetch_int() ==(int)CODE_auth_exported_authorization);
+       bl_do_set_our_id(TLS, fetch_int());
+       int l = prefetch_strlen();
+       char *s = talloc(l);
+       memcpy(s, fetch_str(l), l);
+
+       clear_packet();
+       tgl_do_insert_header(TLS);
+       out_int(CODE_auth_import_authorization);
+       out_int(TLS->our_id);
+       out_cstring(s, l);
+       tglq_send_query(TLS, q->extra, packet_ptr - packet_buffer, packet_buffer, &import_auth_methods, q->extra, q->callback, q->callback_extra);
+       tfree(s, l);
+       return 0;
+}
+
+static struct query_methods export_auth_methods = {
+               .on_answer = export_auth_on_answer,
+               .on_error = fail_on_error,
+               .type = TYPE_TO_PARAM(auth_exported_authorization)
+};
+
+void tgl_do_export_auth(struct tgl_state *TLS, int num, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra)
+{
+       clear_packet();
+       out_int(CODE_auth_export_authorization);
+       out_int(num);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &export_auth_methods, TLS->DC_list[num], callback, callback_extra);
+}
+
+static int add_contact_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       assert(fetch_int() ==(int)CODE_contacts_imported_contacts);
+       assert(fetch_int() == CODE_vector);
+       int n = fetch_int();
+       if (n > 0) {
+               vlogprintf(E_DEBUG, "Added successfully");
+       } else {
+               vlogprintf(E_DEBUG, "Not added");
+       }
+       int i;
+       for (i = 0; i < n ; i++) {
+               assert(fetch_int() ==(int)CODE_imported_contact);
+               fetch_int(); // uid
+               fetch_long(); // client_id
+       }
+       assert(fetch_int() == CODE_vector);
+       n = fetch_int();
+       for (i = 0; i < n; i++) {
+               long long id = fetch_long();
+               vlogprintf(E_NOTICE, "contact #%lld not added. Please retry\n", id);
+       }
+       assert(fetch_int() == CODE_vector);
+       n = fetch_int();
+
+       struct tgl_user **UL = talloc(n * sizeof(void *));
+       for (i = 0; i < n; i++) {
+               UL[i] = tglf_fetch_alloc_user(TLS);
+       }
+
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int, int, struct tgl_user **))q->callback)(TLS, q->callback_extra, 1, n, UL);
+       }
+       tfree(UL, n * sizeof(void *));
+       return 0;
+}
+
+static struct query_methods add_contact_methods = {
+               .on_answer = add_contact_on_answer,
+               .on_error = q_list_on_error,
+               .type = TYPE_TO_PARAM(contacts_imported_contacts)
+};
+
+void tgl_do_add_contact(struct tgl_state *TLS, const char *phone, int phone_len, const char *first_name, int first_name_len, const char *last_name, int last_name_len, int force, void(*callback)(struct tgl_state *TLS,void *callback_extra, int success, int size, struct tgl_user *users[]), void *callback_extra)
+{
+       clear_packet();
+       out_int(CODE_contacts_import_contacts);
+       out_int(CODE_vector);
+       out_int(1);
+       out_int(CODE_input_phone_contact);
+       long long r;
+       tglt_secure_random(&r, 8);
+       out_long(r);
+       out_cstring(phone, phone_len);
+       out_cstring(first_name, first_name_len);
+       out_cstring(last_name, last_name_len);
+       out_int(force ? CODE_bool_true : CODE_bool_false);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &add_contact_methods, 0, callback, callback_extra);
+}
+
+static int del_contact_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       assert(skip_type_contacts_link(TYPE_TO_PARAM(contacts_link)) >= 0);
+
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 1);
+       }
+       return 0;
+}
+
+static struct query_methods del_contact_methods = {
+               .on_answer = del_contact_on_answer,
+               .on_error = q_void_on_error,
+               .type = TYPE_TO_PARAM(contacts_link)
+};
+
+void tgl_do_del_contact(struct tgl_state *TLS, tgl_peer_id_t id, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra)
+{
+       if (tgl_get_peer_type(id) != TGL_PEER_USER) {
+               if (callback) {
+                       callback(TLS, callback_extra, 0);
+               }
+               return;
+       }
+       clear_packet();
+       out_int(CODE_contacts_delete_contact);
+
+       tgl_peer_t *U = tgl_peer_get(TLS, id);
+       if (U && U->user.access_hash) {
+               out_int(CODE_input_user_foreign);
+               out_int(tgl_get_peer_id(id));
+               out_long(U->user.access_hash);
+       } else {
+               out_int(CODE_input_user_contact);
+               out_int(tgl_get_peer_id(id));
+       }
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &del_contact_methods, 0, callback, callback_extra);
+}
+
+void _tgl_do_msg_search(struct tgl_state *TLS, tgl_peer_id_t id, int from, int to, int limit, int offset, int max_id, char *s, int list_offset, int list_size, struct tgl_message **list, void(*callback)(struct tgl_state *TLS,void *callback_extra, int success, int size, struct tgl_message *list[]), void *callback_extra);
+
+static int msg_search_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       int count = -1;
+       int i;
+       int x = fetch_int();
+       assert(x ==(int)CODE_messages_messages_slice || x ==(int)CODE_messages_messages);
+       if (x ==(int)CODE_messages_messages_slice) {
+               count = fetch_int();
+               //fetch_int();
+       }
+       assert(fetch_int() == CODE_vector);
+       void **T = q->extra;
+       struct tgl_message **ML = T[0];
+       int list_offset =(long)T[1];
+       int list_size =(long)T[2];
+       tgl_peer_id_t id = tgl_set_peer_id((long)T[4],(long)T[3]);
+       int limit =(long)T[5];
+       int offset =(long)T[6];
+       int from =(long)T[7];
+       int to =(long)T[8];
+       char *s = T[9];
+       tfree(T, sizeof(void *) * 10);
+
+       int n = fetch_int();
+
+       if (list_size - list_offset < n) {
+               int new_list_size = 2 * list_size;
+               if (new_list_size - list_offset < n) {
+                       new_list_size = n + list_offset;
+               }
+               ML = trealloc(ML, list_size * sizeof(void *), new_list_size * sizeof(void *));
+               assert(ML);
+               list_size = new_list_size;
+       }
+       //struct tgl_message **ML = talloc(sizeof(void *) * n);
+       for (i = 0; i < n; i++) {
+               ML[i + list_offset] = tglf_fetch_alloc_message(TLS);
+       }
+       list_offset += n;
+       offset += n;
+       limit -= n;
+       if (count >= 0 && limit + offset >= count) {
+               limit = count - offset;
+               if (limit < 0) { limit = 0; }
+       }
+       assert(limit >= 0);
+
+       assert(fetch_int() == CODE_vector);
+       n = fetch_int();
+       for (i = 0; i < n; i++) {
+               tglf_fetch_alloc_chat(TLS);
+       }
+       assert(fetch_int() == CODE_vector);
+       n = fetch_int();
+       for (i = 0; i < n; i++) {
+               tglf_fetch_alloc_user(TLS);
+       }
+
+
+       if (limit <= 0 || x ==(int)CODE_messages_messages) {
+               if (q->callback) {
+                       ((void(*)(struct tgl_state *, void *, int, int, struct tgl_message **))q->callback)(TLS, q->callback_extra, 1, list_offset, ML);
+               }
+
+               tfree_str(s);
+               tfree(ML, sizeof(void *) * list_size);
+       } else {
+               _tgl_do_msg_search(TLS, id, from, to, limit, 0, ML[list_offset - 1]->id, s, list_offset, list_size, ML, q->callback, q->callback_extra);
+       }
+       return 0;
+}
+
+static int msg_search_on_error(struct tgl_state *TLS, struct query *q, int error_code, int error_len, char *error)
+{
+       void **T = q->extra;
+       struct tgl_message **ML = T[0];
+       int list_size =(long)T[2];
+       char *s = T[9];
+       tfree(T, sizeof(void *) * 10);
+       tfree_str(s);
+       tfree(ML, sizeof(void *) * list_size);
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int, int, struct tgl_message **))q->callback)(TLS, q->callback_extra, 0, 0, NULL);
+       }
+       return 0;
+}
+
+static struct query_methods msg_search_methods = {
+               .on_answer = msg_search_on_answer,
+               .on_error = msg_search_on_error,
+               .type = TYPE_TO_PARAM(messages_messages)
+};
+
+void _tgl_do_msg_search(struct tgl_state *TLS, tgl_peer_id_t id, int from, int to, int limit, int offset, int max_id, char *s, int list_offset, int list_size, struct tgl_message **list, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, struct tgl_message *list[]), void *callback_extra)
+{
+       if (tgl_get_peer_type(id) == TGL_PEER_ENCR_CHAT) {
+               vlogprintf(E_WARNING, "Can not search in secure chat\n");
+               if (callback) {
+                       callback(TLS, callback_extra, 0, 0, 0);
+               }
+               return;
+       }
+       clear_packet();
+       out_int(CODE_messages_search);
+       if (tgl_get_peer_type(id) == TGL_PEER_UNKNOWN) {
+               out_int(CODE_input_peer_empty);
+       } else {
+               out_peer_id(TLS, id);
+       }
+       void **T = talloc(sizeof(void *) * 10);
+       T[0] = list;
+       T[1] =(void *)(long)list_offset;
+       T[2] =(void *)(long)list_size;
+       T[3] =(void *)(long)tgl_get_peer_id(id);
+       T[4] =(void *)(long)tgl_get_peer_type(id);
+       T[5] =(void *)(long)limit;
+       T[6] =(void *)(long)offset;
+       T[7] =(void *)(long)from;
+       T[8] =(void *)(long)to;
+       T[9] = s;
+
+       out_string(s);
+       out_int(CODE_input_messages_filter_empty);
+       out_int(from);
+       out_int(to);
+       out_int(offset); // offset
+       out_int(max_id); // max_id
+       out_int(limit);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &msg_search_methods, T, callback, callback_extra);
+}
+
+void tgl_do_msg_search(struct tgl_state *TLS, tgl_peer_id_t id, int from, int to, int limit, int offset, const char *s, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, struct tgl_message *list[]), void *callback_extra)
+{
+       _tgl_do_msg_search(TLS, id, from, to, limit, offset, 0, tstrdup(s), 0, 0, 0, callback, callback_extra);
+}
+
+static int contacts_search_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       assert(fetch_int() == CODE_contacts_found);
+       assert(fetch_int() == CODE_vector);
+       int n = fetch_int();
+       int i;
+       for (i = 0; i < n; i++) {
+               assert(fetch_int() ==(int)CODE_contact_found);
+               fetch_int();
+       }
+       assert(fetch_int() == CODE_vector);
+       n = fetch_int();
+
+       struct tgl_user **UL = talloc(sizeof(void *) * n);
+       for (i = 0; i < n; i++) {
+               UL[i] = tglf_fetch_alloc_user(TLS);
+       }
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int, int, struct tgl_user **))q->callback)(TLS, q->callback_extra, 1, n, UL);
+       }
+       tfree(UL, sizeof(void *) * n);
+       return 0;
+}
+
+static struct query_methods contacts_search_methods = {
+               .on_answer = contacts_search_on_answer,
+               .on_error = q_list_on_error,
+               .type = TYPE_TO_PARAM(contacts_found)
+};
+
+void tgl_do_contacts_search(struct tgl_state *TLS, int limit, const char *s, void(*callback)(struct tgl_state *, void *callback_extra, int success, int size, struct tgl_user *users[]), void *callback_extra)
+{
+       clear_packet();
+       out_int(CODE_contacts_search);
+       out_string(s);
+       out_int(limit);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &contacts_search_methods, 0, callback, callback_extra);
+}
+
+static int send_encr_accept_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       struct tgl_secret_chat *E = tglf_fetch_alloc_encrypted_chat(TLS);
+
+       if (E->state == sc_ok) {
+               tgl_do_send_encr_chat_layer(TLS, E);
+       }
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int, struct tgl_secret_chat *))q->callback)(TLS, q->callback_extra, E->state == sc_ok, E);
+       }
+       return 0;
+}
+
+static int send_encr_request_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       struct tgl_secret_chat *E = tglf_fetch_alloc_encrypted_chat(TLS);
+
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int, struct tgl_secret_chat *))q->callback)(TLS, q->callback_extra, E->state != sc_deleted, E);
+       }
+       return 0;
+}
+
+static int encr_accept_on_error(struct tgl_state *TLS, struct query *q, int error_code, int error_len, char *error)
+{
+       tgl_peer_t *P = q->extra;
+       if (P && P->encr_chat.state != sc_deleted &&  error_code == 400) {
+               if (strncmp(error, "ENCRYPTION_DECLINED", 19) == 0) {
+                       bl_do_encr_chat_delete(TLS, &P->encr_chat);
+               }
+       }
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int, struct tgl_secret_chat *))q->callback)(TLS, q->callback_extra, 0, NULL);
+       }
+       return 0;
+}
+
+static struct query_methods send_encr_accept_methods  = {
+               .on_answer = send_encr_accept_on_answer,
+               .on_error = encr_accept_on_error,
+               .type = TYPE_TO_PARAM(encrypted_chat)
+};
+
+static struct query_methods send_encr_request_methods  = {
+               .on_answer = send_encr_request_on_answer,
+               .on_error = q_ptr_on_error,
+               .type = TYPE_TO_PARAM(encrypted_chat)
+};
+
+//int encr_root;
+//unsigned char *encr_prime;
+//int encr_param_version;
+//static BN_CTX *ctx;
+
+void tgl_do_send_accept_encr_chat(struct tgl_state *TLS, struct tgl_secret_chat *E, unsigned char *random, void(*callback)(struct tgl_state *TLS,void *callback_extra, int success, struct tgl_secret_chat *E), void *callback_extra)
+{
+       int i;
+       int ok = 0;
+       for (i = 0; i < 64; i++) {
+               if (E->key[i]) {
+                       ok = 1;
+                       break;
+               }
+       }
+       if (ok) {
+               if (callback) {
+                       callback(TLS, callback_extra, 1, E);
+               }
+               return;
+       } // Already generated key for this chat
+       assert(E->g_key);
+       assert(TLS->BN_ctx);
+       unsigned char random_here[256];
+       tglt_secure_random(random_here, 256);
+       for (i = 0; i < 256; i++) {
+               random[i] ^= random_here[i];
+       }
+       BIGNUM *b = BN_bin2bn(random, 256, 0);
+       ensure_ptr(b);
+       BIGNUM *g_a = BN_bin2bn(E->g_key, 256, 0);
+       ensure_ptr(g_a);
+       assert(tglmp_check_g_a(TLS, TLS->encr_prime_bn, g_a) >= 0);
+       //if (!ctx) {
+       //  ctx = BN_CTX_new();
+       //  ensure_ptr(ctx);
+       //}
+       BIGNUM *p = TLS->encr_prime_bn;
+       BIGNUM *r = BN_new();
+       ensure_ptr(r);
+       ensure(BN_mod_exp(r, g_a, b, p, TLS->BN_ctx));
+       static unsigned char kk[256];
+       memset(kk, 0, sizeof(kk));
+       BN_bn2bin(r, kk +(256 - BN_num_bytes(r)));
+       for (i = 0; i < 256; i++) {
+               kk[i] ^= E->nonce[i];
+       }
+       static unsigned char sha_buffer[20];
+       sha1(kk, 256, sha_buffer);
+
+       bl_do_encr_chat_set_key(TLS, E, kk, *(long long *)(sha_buffer + 12));
+       bl_do_encr_chat_set_sha(TLS, E, sha_buffer);
+
+       clear_packet();
+       out_int(CODE_messages_accept_encryption);
+       out_int(CODE_input_encrypted_chat);
+       out_int(tgl_get_peer_id(E->id));
+       out_long(E->access_hash);
+
+       ensure(BN_set_word(g_a, TLS->encr_root));
+       ensure(BN_mod_exp(r, g_a, b, p, TLS->BN_ctx));
+       static unsigned char buf[256];
+       memset(buf, 0, sizeof(buf));
+       BN_bn2bin(r, buf +(256 - BN_num_bytes(r)));
+       out_cstring((void *)buf, 256);
+
+       out_long(E->key_fingerprint);
+       BN_clear_free(b);
+       BN_clear_free(g_a);
+       BN_clear_free(r);
+
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_encr_accept_methods, E, callback, callback_extra);
+}
+
+void tgl_do_create_keys_end(struct tgl_state *TLS, struct tgl_secret_chat *U)
+{
+       assert(TLS->encr_prime);
+       BIGNUM *g_b = BN_bin2bn(U->g_key, 256, 0);
+       ensure_ptr(g_b);
+       assert(tglmp_check_g_a(TLS, TLS->encr_prime_bn, g_b) >= 0);
+
+       BIGNUM *p = TLS->encr_prime_bn;
+       ensure_ptr(p);
+       BIGNUM *r = BN_new();
+       ensure_ptr(r);
+       BIGNUM *a = BN_bin2bn((void *)U->key, 256, 0);
+       ensure_ptr(a);
+       ensure(BN_mod_exp(r, g_b, a, p, TLS->BN_ctx));
+
+       unsigned char *t = talloc(256);
+       memcpy(t, U->key, 256);
+
+       memset(U->key, 0, sizeof(U->key));
+       BN_bn2bin(r,(void *)(((char *)(U->key)) +(256 - BN_num_bytes(r))));
+       int i;
+       for (i = 0; i < 64; i++) {
+               U->key[i] ^= *(((int *)U->nonce) + i);
+       }
+
+       static unsigned char sha_buffer[20];
+       sha1((void *)U->key, 256, sha_buffer);
+       long long k = *(long long *)(sha_buffer + 12);
+       if (k != U->key_fingerprint) {
+               vlogprintf(E_WARNING, "Key fingerprint mismatch(my 0x%llx 0x%llx)\n",(unsigned long long)k,(unsigned long long)U->key_fingerprint);
+               U->state = sc_deleted;
+       }
+
+       memcpy(U->first_key_sha, sha_buffer, 20);
+       tfree_secure(t, 256);
+
+       BN_clear_free(g_b);
+       BN_clear_free(r);
+       BN_clear_free(a);
+}
+
+void tgl_do_send_create_encr_chat(struct tgl_state *TLS, void *x, unsigned char *random, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_secret_chat *E), void *callback_extra)
+{
+       int user_id =(long)x;
+       int i;
+       unsigned char random_here[256];
+       tglt_secure_random(random_here, 256);
+       for (i = 0; i < 256; i++) {
+               random[i] ^= random_here[i];
+       }
+       BIGNUM *a = BN_bin2bn(random, 256, 0);
+       ensure_ptr(a);
+       BIGNUM *p = BN_bin2bn(TLS->encr_prime, 256, 0);
+       ensure_ptr(p);
+
+       BIGNUM *g = BN_new();
+       ensure_ptr(g);
+
+       ensure(BN_set_word(g, TLS->encr_root));
+
+       BIGNUM *r = BN_new();
+       ensure_ptr(r);
+
+       ensure(BN_mod_exp(r, g, a, p, TLS->BN_ctx));
+
+       BN_clear_free(a);
+
+       static char g_a[256];
+       memset(g_a, 0, 256);
+
+       BN_bn2bin(r,(void *)(g_a +(256 - BN_num_bytes(r))));
+
+       int t = lrand48();
+       while(tgl_peer_get(TLS, TGL_MK_ENCR_CHAT(t))) {
+               t = lrand48();
+       }
+
+       bl_do_encr_chat_init(TLS, t, user_id,(void *)random,(void *)g_a);
+       tgl_peer_t *_E = tgl_peer_get(TLS, TGL_MK_ENCR_CHAT(t));
+       assert(_E);
+       struct tgl_secret_chat *E = &_E->encr_chat;
+
+       clear_packet();
+       out_int(CODE_messages_request_encryption);
+       tgl_peer_t *U = tgl_peer_get(TLS, TGL_MK_USER(E->user_id));
+       assert(U);
+       if (U && U->user.access_hash) {
+               out_int(CODE_input_user_foreign);
+               out_int(E->user_id);
+               out_long(U->user.access_hash);
+       } else {
+               out_int(CODE_input_user_contact);
+               out_int(E->user_id);
+       }
+       out_int(tgl_get_peer_id(E->id));
+       out_cstring(g_a, 256);
+       //write_secret_chat_file();
+
+       BN_clear_free(g);
+       BN_clear_free(p);
+       BN_clear_free(r);
+
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_encr_request_methods, E, callback, callback_extra);
+}
+
+static int get_dh_config_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       unsigned x = fetch_int();
+       assert(x == CODE_messages_dh_config || x == CODE_messages_dh_config_not_modified);
+       if (x == CODE_messages_dh_config)  {
+               int a = fetch_int();
+               int l = prefetch_strlen();
+               assert(l == 256);
+               char *s = fetch_str(l);
+               int v = fetch_int();
+               bl_do_set_dh_params(TLS, a,(void *)s, v);
+
+               BIGNUM *p = BN_bin2bn((void *)s, 256, 0);
+               ensure_ptr(p);
+               assert(tglmp_check_DH_params(TLS, p, a) >= 0);
+               BN_free(p);
+       } else {
+               assert(TLS->encr_param_version);
+       }
+       int l = prefetch_strlen();
+       assert(l == 256);
+       unsigned char *random = talloc(256);
+       memcpy(random, fetch_str(256), 256);
+       if (q->extra) {
+               void **x = q->extra;
+               ((void(*)(struct tgl_state *, void *, void *, void *, void *))(*x))(TLS, x[1], random, q->callback, q->callback_extra);
+               tfree(x, 2 * sizeof(void *));
+               tfree_secure(random, 256);
+       } else {
+               tfree_secure(random, 256);
+       }
+       return 0;
+}
+
+static struct query_methods get_dh_config_methods  = {
+               .on_answer = get_dh_config_on_answer,
+               .on_error = q_void_on_error,
+               .type = TYPE_TO_PARAM(messages_dh_config)
+};
+
+void tgl_do_accept_encr_chat_request(struct tgl_state *TLS, struct tgl_secret_chat *E, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_secret_chat *E), void *callback_extra)
+{
+       if (E->state != sc_request) {
+               if (callback) {
+                       callback(TLS, callback_extra, 0, E);
+               }
+               return;
+       }
+       assert(E->state == sc_request);
+
+       clear_packet();
+       out_int(CODE_messages_get_dh_config);
+       out_int(TLS->encr_param_version);
+       out_int(256);
+       void **x = talloc(2 * sizeof(void *));
+       x[0] = tgl_do_send_accept_encr_chat;
+       x[1] = E;
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &get_dh_config_methods, x, callback, callback_extra);
+}
+
+void tgl_do_create_encr_chat_request(struct tgl_state *TLS, int user_id, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_secret_chat *E), void *callback_extra)
+{
+       clear_packet();
+       out_int(CODE_messages_get_dh_config);
+       out_int(TLS->encr_param_version);
+       out_int(256);
+       void **x = talloc(2 * sizeof(void *));
+       x[0] = tgl_do_send_create_encr_chat;
+       x[1] =(void *)(long)(user_id);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &get_dh_config_methods, x, callback, callback_extra);
+}
+
+static int get_state_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       assert(TLS->locks & TGL_LOCK_DIFF);
+       TLS->locks ^= TGL_LOCK_DIFF;
+       assert(fetch_int() ==(int)CODE_updates_state);
+       bl_do_set_pts(TLS, fetch_int());
+       bl_do_set_qts(TLS, fetch_int());
+       bl_do_set_date(TLS, fetch_int());
+       bl_do_set_seq(TLS, fetch_int());
+       fetch_int();
+
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 1);
+       }
+
+       return 0;
+}
+
+static int lookup_state_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       assert(fetch_int() ==(int)CODE_updates_state);
+       int pts = fetch_int();
+       int qts = fetch_int();
+       fetch_int();
+       int seq = fetch_int();
+       fetch_int();
+
+       if (pts > TLS->pts || qts > TLS->qts || seq > TLS->seq) {
+               tgl_do_get_difference(TLS, 0, 0, 0);
+       }
+       return 0;
+}
+
+static int get_difference_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       assert(TLS->locks & TGL_LOCK_DIFF);
+       TLS->locks ^= TGL_LOCK_DIFF;
+
+       unsigned x = fetch_int();
+       if (x == CODE_updates_difference_empty) {
+               bl_do_set_date(TLS, fetch_int());
+               bl_do_set_seq(TLS, fetch_int());
+               //difference_got = 1;
+
+               vlogprintf(E_DEBUG, "Empty difference. Seq = %d\n", TLS->seq);
+               if (q->callback) {
+                       ((void(*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 1);
+               }
+       } else if (x == CODE_updates_difference || x == CODE_updates_difference_slice) {
+               int n, i;
+               assert(fetch_int() == CODE_vector);
+               n = fetch_int();
+               struct tgl_message **ML = talloc(n * sizeof(void *));
+               int ml_pos = 0;
+               for (i = 0; i < n; i++) {
+                       ML[ml_pos ++] = tglf_fetch_alloc_message(TLS);
+               }
+               assert(fetch_int() == CODE_vector);
+               n = fetch_int();
+               struct tgl_message **EL = talloc(n * sizeof(void *));
+               int el_pos = 0;
+               for (i = 0; i < n; i++) {
+                       EL[el_pos ++] = tglf_fetch_alloc_encrypted_message(TLS);
+               }
+               assert(fetch_int() == CODE_vector);
+               n = fetch_int();
+               for (i = 0; i < n; i++) {
+                       tglu_work_update(TLS, 0, 0);
+               }
+               assert(fetch_int() == CODE_vector);
+               n = fetch_int();
+               for (i = 0; i < n; i++) {
+                       tglf_fetch_alloc_chat(TLS);
+               }
+               assert(fetch_int() == CODE_vector);
+               n = fetch_int();
+               for (i = 0; i < n; i++) {
+                       tglf_fetch_alloc_user(TLS);
+               }
+               assert(fetch_int() ==(int)CODE_updates_state);
+               bl_do_set_pts(TLS, fetch_int());
+               bl_do_set_qts(TLS, fetch_int());
+               bl_do_set_date(TLS, fetch_int());
+               if (x == CODE_updates_difference) {
+                       bl_do_set_seq(TLS, fetch_int());
+                       vlogprintf(E_DEBUG, "Difference end. New seq = %d\n", TLS->seq);
+               } else {
+                       fetch_int();
+               }
+               //unread_messages = fetch_int();
+               fetch_int();
+               //write_state_file();
+               /*for (i = 0; i < ml_pos; i++) {
+      print_message(ML[i]);
+    }*/
+               for (i = 0; i < ml_pos; i++) {
+                       //TLS->callback.new_msg(ML[i]);
+                       bl_do_msg_update(TLS, ML[i]->id);
+               }
+               for (i = 0; i < el_pos; i++) {
+                       //TLS->callback.new_msg(EL[i]);
+                       bl_do_msg_update(TLS, EL[i]->id);
+               }
+               tfree(ML, ml_pos * sizeof(void *));
+               tfree(EL, el_pos * sizeof(void *));
+
+               if (x == CODE_updates_difference_slice) {
+                       //if (q->callback) {
+                       // ((void(*)(void *, int))q->callback)(q->callback_extra, 1);
+                       //}
+                       tgl_do_get_difference(TLS, 0, q->callback, q->callback_extra);
+               } else {
+                       //difference_got = 1;
+                       if (q->callback) {
+                               ((void(*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 1);
+                       }
+               }
+       } else {
+               assert(0);
+       }
+       return 0;
+}
+
+static struct query_methods lookup_state_methods = {
+               .on_answer = lookup_state_on_answer,
+               .on_error = q_void_on_error,
+               .type = TYPE_TO_PARAM(updates_state)
+};
+
+static struct query_methods get_state_methods = {
+               .on_answer = get_state_on_answer,
+               .on_error = q_void_on_error,
+               .type = TYPE_TO_PARAM(updates_state)
+};
+
+static struct query_methods get_difference_methods = {
+               .on_answer = get_difference_on_answer,
+               .on_error = q_void_on_error,
+               .type = TYPE_TO_PARAM(updates_difference)
+};
+
+void tgl_do_lookup_state(struct tgl_state *TLS)
+{
+       if (TLS->locks & TGL_LOCK_DIFF) {
+               return;
+       }
+       clear_packet();
+       tgl_do_insert_header(TLS);
+       out_int(CODE_updates_get_state);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &lookup_state_methods, 0, 0, 0);
+}
+
+void tgl_do_get_difference(struct tgl_state *TLS, int sync_from_start, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra)
+{
+       //get_difference_active = 1;
+       //difference_got = 0;
+       if (TLS->locks & TGL_LOCK_DIFF) {
+               if (callback) {
+                       callback(TLS, callback_extra, 0);
+               }
+               return;
+       }
+       TLS->locks |= TGL_LOCK_DIFF;
+       clear_packet();
+       tgl_do_insert_header(TLS);
+       if (TLS->pts > 0 || sync_from_start) {
+               if (TLS->pts == 0) { TLS->pts = 1; }
+               //if (TLS->qts == 0) { TLS->qts = 1; }
+               if (TLS->date == 0) { TLS->date = 1; }
+               out_int(CODE_updates_get_difference);
+               out_int(TLS->pts);
+               out_int(TLS->date);
+               out_int(TLS->qts);
+               tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &get_difference_methods, 0, callback, callback_extra);
+       } else {
+               out_int(CODE_updates_get_state);
+               tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &get_state_methods, 0, callback, callback_extra);
+       }
+}
+/* }}} */
+
+/* {{{ Visualize key */
+/*char *colors[4] = {COLOR_GREY, COLOR_CYAN, COLOR_BLUE, COLOR_GREEN};
+
+void tgl_do_visualize_key(tgl_peer_id_t id) {
+  assert(tgl_get_peer_type(id) == TGL_PEER_ENCR_CHAT);
+  tgl_peer_t *P = tgl_peer_get(TLS, id);
+  assert(P);
+  if (P->encr_chat.state != sc_ok) {
+    rprintf("Chat is not initialized yet\n");
+    return;
+  }
+  unsigned char buf[20];
+  SHA1((void *)P->encr_chat.key, 256, buf);
+  print_start();
+  int i;
+  for (i = 0; i < 16; i++) {
+    int x = buf[i];
+    int j;
+    for (j = 0; j < 4; j ++) {
+      push_color(colors[x & 3]);
+      push_color(COLOR_INVERSE);
+      printf("  ");
+      pop_color();
+      pop_color();
+      x = x >> 2;
+    }
+    if (i & 1) { printf("\n"); }
+  }
+  print_end();
+}*/
+
+void tgl_do_visualize_key(struct tgl_state *TLS, tgl_peer_id_t id, unsigned char buf[16])
+{
+       assert(tgl_get_peer_type(id) == TGL_PEER_ENCR_CHAT);
+       tgl_peer_t *P = tgl_peer_get(TLS, id);
+       assert(P);
+       if (P->encr_chat.state != sc_ok) {
+               vlogprintf(E_WARNING, "Chat is not initialized yet\n");
+               return;
+       }
+       //unsigned char res[20];
+       //SHA1((void *)P->encr_chat.key, 256, res);
+       //memcpy(buf, res, 16);
+       memcpy(buf, P->encr_chat.first_key_sha, 16);
+}
+
+static struct query_methods add_user_to_chat_methods = {
+               .on_answer = fwd_msg_on_answer,
+               .on_error = q_ptr_on_error,
+               .type = TYPE_TO_PARAM(messages_stated_message)
+};
+
+void tgl_do_add_user_to_chat(struct tgl_state *TLS, tgl_peer_id_t chat_id, tgl_peer_id_t id, int limit, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra)
+{
+       clear_packet();
+       out_int(CODE_messages_add_chat_user);
+       out_int(tgl_get_peer_id(chat_id));
+
+       assert(tgl_get_peer_type(id) == TGL_PEER_USER);
+       tgl_peer_t *U = tgl_peer_get(TLS, id);
+       if (U && U->user.access_hash) {
+               out_int(CODE_input_user_foreign);
+               out_int(tgl_get_peer_id(id));
+               out_long(U->user.access_hash);
+       } else {
+               out_int(CODE_input_user_contact);
+               out_int(tgl_get_peer_id(id));
+       }
+       out_int(limit);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &add_user_to_chat_methods, 0, callback, callback_extra);
+}
+
+void tgl_do_del_user_from_chat(struct tgl_state *TLS, tgl_peer_id_t chat_id, tgl_peer_id_t id, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra)
+{
+       clear_packet();
+       out_int(CODE_messages_delete_chat_user);
+       out_int(tgl_get_peer_id(chat_id));
+
+       assert(tgl_get_peer_type(id) == TGL_PEER_USER);
+       tgl_peer_t *U = tgl_peer_get(TLS, id);
+       if (U && U->user.access_hash) {
+               out_int(CODE_input_user_foreign);
+               out_int(tgl_get_peer_id(id));
+               out_long(U->user.access_hash);
+       } else {
+               out_int(CODE_input_user_contact);
+               out_int(tgl_get_peer_id(id));
+       }
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &add_user_to_chat_methods, 0, callback, callback_extra);
+}
+
+void tgl_do_create_secret_chat(struct tgl_state *TLS, tgl_peer_id_t id, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_secret_chat *E), void *callback_extra)
+{
+       assert(tgl_get_peer_type(id) == TGL_PEER_USER);
+       tgl_peer_t *U = tgl_peer_get(TLS, id);
+       if (!U) {
+               vlogprintf(E_WARNING, "Can not create chat with unknown user\n");
+               return;
+       }
+
+       tgl_do_create_encr_chat_request(TLS, tgl_get_peer_id(id), callback, callback_extra);
+}
+
+static struct query_methods create_group_chat_methods = {
+               .on_answer = fwd_msg_on_answer,
+               .on_error = q_ptr_on_error,
+               .type = TYPE_TO_PARAM(messages_stated_message)
+};
+
+void tgl_do_create_group_chat(struct tgl_state *TLS, tgl_peer_id_t id, char *chat_topic, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra)
+{
+       assert(tgl_get_peer_type(id) == TGL_PEER_USER);
+       tgl_peer_t *U = tgl_peer_get(TLS, id);
+       if (!U) {
+               vlogprintf(E_WARNING, "Can not create chat with unknown user\n");
+               if (callback) {
+                       callback(TLS, callback_extra, 0, 0);
+               }
+               return;
+       }
+       clear_packet();
+       out_int(CODE_messages_create_chat);
+       out_int(CODE_vector);
+       out_int(1); // Number of users, currently we support only 1 user.
+       if (U && U->user.access_hash) {
+               out_int(CODE_input_user_foreign);
+               out_int(tgl_get_peer_id(id));
+               out_long(U->user.access_hash);
+       } else {
+               out_int(CODE_input_user_contact);
+               out_int(tgl_get_peer_id(id));
+       }
+       out_string(chat_topic);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &create_group_chat_methods, 0, callback, callback_extra);
+}
+
+void tgl_do_create_group_chat_ex(struct tgl_state *TLS, int users_num, tgl_peer_id_t ids[], char *chat_topic, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra)
+{
+       clear_packet();
+       out_int(CODE_messages_create_chat);
+       out_int(CODE_vector);
+       out_int(users_num); // Number of users, currently we support only 1 user.
+       int i;
+       for (i = 0; i < users_num; i++) {
+               tgl_peer_id_t id = ids[i];
+               tgl_peer_t *U = tgl_peer_get(TLS, id);
+               if (!U || tgl_get_peer_type(id) != TGL_PEER_USER) {
+                       vlogprintf(E_WARNING, "Can not create chat with unknown user\n");
+                       if (callback) {
+                               callback(TLS, callback_extra, 0, 0);
+                       }
+                       return;
+               }
+               if (U && U->user.access_hash) {
+                       out_int(CODE_input_user_foreign);
+                       out_int(tgl_get_peer_id(id));
+                       out_long(U->user.access_hash);
+               } else {
+                       out_int(CODE_input_user_contact);
+                       out_int(tgl_get_peer_id(id));
+               }
+       }
+       out_string(chat_topic);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &create_group_chat_methods, 0, callback, callback_extra);
+}
+
+static int delete_msg_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       assert(fetch_int() == CODE_vector);
+       int n = fetch_int();
+       fetch_skip(n);
+
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 1);
+       }
+       return 0;
+}
+
+static struct query_methods delete_msg_methods = {
+               .on_answer = delete_msg_on_answer,
+               .on_error = q_void_on_error,
+               .type = TYPE_TO_PARAM_1(vector, TYPE_TO_PARAM(bare_int))
+};
+
+void tgl_do_delete_msg(struct tgl_state *TLS, long long id, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra)
+{
+       clear_packet();
+       out_int(CODE_messages_delete_messages);
+       out_int(CODE_vector);
+       out_int(1);
+       out_int(id);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &delete_msg_methods, 0, callback, callback_extra);
+}
+
+static int restore_msg_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       assert(fetch_int() == CODE_vector);
+       int n = fetch_int();
+       fetch_skip(n);
+
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 1);
+       }
+       return 0;
+}
+
+static struct query_methods restore_msg_methods = {
+               .on_answer = restore_msg_on_answer,
+               .on_error = q_void_on_error,
+               .type = TYPE_TO_PARAM_1(vector, TYPE_TO_PARAM(bare_int))
+};
+
+void tgl_do_restore_msg(struct tgl_state *TLS, long long id, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra)
+{
+       clear_packet();
+       out_int(CODE_messages_restore_messages);
+       out_int(CODE_vector);
+       out_int(1);
+       out_int(id);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &restore_msg_methods, 0, callback, callback_extra);
+}
+
+static int export_card_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       assert(fetch_int() == CODE_vector);
+       int n = fetch_int();
+       int *r = talloc(4 * n);
+       fetch_ints(r, n);
+
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int, int, int *))q->callback)(TLS, q->callback_extra, 1, n, r);
+       }
+       free(r);
+       return 0;
+}
+
+static struct query_methods export_card_methods = {
+               .on_answer = export_card_on_answer,
+               .on_error = q_list_on_error,
+               .type = TYPE_TO_PARAM_1(vector, TYPE_TO_PARAM(bare_int))
+};
+
+void tgl_do_export_card(struct tgl_state *TLS, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, int *card), void *callback_extra)
+{
+       clear_packet();
+       out_int(CODE_contacts_export_card);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &export_card_methods, 0, callback, callback_extra);
+}
+
+static int import_card_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       struct tgl_user *U = tglf_fetch_alloc_user(TLS);
+
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int, struct tgl_user *))q->callback)(TLS, q->callback_extra, 1, U);
+       }
+       return 0;
+}
+
+static struct query_methods import_card_methods = {
+               .on_answer = import_card_on_answer,
+               .on_error = q_ptr_on_error,
+               .type = TYPE_TO_PARAM(user)
+};
+
+void tgl_do_import_card(struct tgl_state *TLS, int size, int *card, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *U), void *callback_extra)
+{
+       clear_packet();
+       out_int(CODE_contacts_import_card);
+       out_int(CODE_vector);
+       out_int(size);
+       out_ints(card, size);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &import_card_methods, 0, callback, callback_extra);
+}
+
+static int send_typing_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       fetch_bool();
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 1);
+       }
+       return 0;
+}
+
+static struct query_methods send_typing_methods = {
+               .on_answer = send_typing_on_answer,
+               .on_error = q_void_on_error,
+               .type = TYPE_TO_PARAM(bool)
+};
+
+void tgl_do_send_typing(struct tgl_state *TLS, tgl_peer_id_t id, enum tgl_typing_status status, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra)
+{
+       if (tgl_get_peer_type(id) != TGL_PEER_ENCR_CHAT) {
+               clear_packet();
+               out_int(CODE_messages_set_typing);
+               out_peer_id(TLS, id);
+               switch (status) {
+               case tgl_typing_none:
+               case tgl_typing_typing:
+                       out_int(CODE_send_message_typing_action);
+                       break;
+               case tgl_typing_cancel:
+                       out_int(CODE_send_message_cancel_action);
+                       break;
+               case tgl_typing_record_video:
+                       out_int(CODE_send_message_record_video_action);
+                       break;
+               case tgl_typing_upload_video:
+                       out_int(CODE_send_message_upload_video_action);
+                       break;
+               case tgl_typing_record_audio:
+                       out_int(CODE_send_message_record_audio_action);
+                       break;
+               case tgl_typing_upload_audio:
+                       out_int(CODE_send_message_upload_audio_action);
+                       break;
+               case tgl_typing_upload_photo:
+                       out_int(CODE_send_message_upload_photo_action);
+                       break;
+               case tgl_typing_upload_document:
+                       out_int(CODE_send_message_upload_document_action);
+                       break;
+               case tgl_typing_geo:
+                       out_int(CODE_send_message_geo_location_action);
+                       break;
+               case tgl_typing_choose_contact:
+                       out_int(CODE_send_message_choose_contact_action);
+                       break;
+               }
+               tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_typing_methods, 0, callback, callback_extra);
+       } else {
+               if (callback) {
+                       callback(TLS, callback_extra, 0);
+               }
+       }
+}
+
+#ifndef DISABLE_EXTF
+static int ext_query_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       if (q->callback) {
+               char *buf = tglf_extf_fetch(TLS, q->type);
+               ((void(*)(struct tgl_state *, void *, int, char *))q->callback)(TLS, q->callback_extra, 1, buf);
+       }
+       tgl_paramed_type_free(q->type);
+       return 0;
+}
+
+static struct query_methods ext_query_methods = {
+               .on_answer = ext_query_on_answer,
+               .on_error = q_list_on_error
+};
+
+void tgl_do_send_extf(struct tgl_state *TLS, char *data, int data_len, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, char *buf), void *callback_extra)
+{
+       clear_packet();
+
+       ext_query_methods.type = tglf_extf_store(TLS, data, data_len);
+
+       if (ext_query_methods.type) {
+               tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &ext_query_methods, 0, callback, callback_extra);
+       }
+}
+#else
+void tgl_do_send_extf(struct tgl_state *TLS, char *data, int data_len, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, char *buf), void *callback_extra) {
+       if (callback) {
+               callback(TLS, callback_extra, 0, 0);
+       }
+}
+#endif
+
+
+static int set_password_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       fetch_bool();
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 1);
+       }
+       return 0;
+}
+
+static int set_password_on_error(struct tgl_state *TLS, struct query *q, int error_code, int l, char *error)
+{
+       if (error_code == 400) {
+               if (!strcmp(error, "PASSWORD_HASH_INVALID")) {
+                       vlogprintf(E_WARNING, "Bad old password\n");
+                       if (q->callback) {
+                               ((void(*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 0);
+                       }
+                       return 0;
+               }
+               if (!strcmp(error, "NEW_PASSWORD_BAD")) {
+                       vlogprintf(E_WARNING, "Bad new password(unchanged or equals hint)\n");
+                       if (q->callback) {
+                               ((void(*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 0);
+                       }
+                       return 0;
+               }
+               if (!strcmp(error, "NEW_SALT_INVALID")) {
+                       vlogprintf(E_WARNING, "Bad new salt\n");
+                       if (q->callback) {
+                               ((void(*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 0);
+                       }
+                       return 0;
+               }
+       }
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 0);
+       }
+       return 0;
+}
+
+static struct query_methods set_password_methods = {
+               .on_answer = set_password_on_answer,
+               .on_error = set_password_on_error,
+               .type = TYPE_TO_PARAM(bool)
+};
+
+static void tgl_do_act_set_password(struct tgl_state *TLS, char *current_password, char *new_password, char *current_salt, int l, char *new_salt, int l2, char *hint, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra)
+{
+       clear_packet();
+       static char s[512];
+       static unsigned char shab[32];
+
+       if (current_password && current_salt) {
+               assert(strlen(current_salt) <= 128);
+               assert(strlen(current_password) <= 128);
+       }
+       assert(strlen(new_salt) <= 128);
+       assert(strlen(new_password) <= 128);
+
+       out_int(CODE_account_set_password);
+
+       if (current_password && current_salt) {
+               memcpy(s, current_salt, l);
+
+               int r = strlen(current_password);
+               strcpy(s + l, current_password);
+
+               memcpy(s + l + r, current_salt, l);
+
+               SHA256((void *)s, 2 * l + r, shab);
+               out_cstring((void *)shab, 32);
+       } else {
+               out_string("");
+       }
+
+       if (new_password && strlen(new_password)) {
+               static char d[256];
+               memcpy(d, new_salt, l2);
+               int l = l2;
+               tglt_secure_random(d + l, 16);
+               l += 16;
+               memcpy(s, d, l);
+
+               int r = strlen(new_password);
+               strcpy(s + l, new_password);
+
+               memcpy(s + l + r, d, l);
+
+               SHA256((void *)s, 2 * l + r, shab);
+
+               out_cstring(d, l);
+               out_cstring((void *)shab, 32);
+       } else {
+               out_string(new_salt);
+               out_string("");
+       }
+
+       out_string(hint);
+
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &set_password_methods, 0, callback, callback_extra);
+}
+
+void tgl_on_new_pwd(struct tgl_state *TLS, char *pwd, void *_T);
+void tgl_on_new2_pwd(struct tgl_state *TLS, char *pwd, void *_T)
+{
+       void **T = _T;
+       if (strcmp(T[6], pwd)) {
+               tfree_str(T[6]);
+               T[6] = NULL;
+               vlogprintf(E_ERROR, "passwords do not match\n");
+               TLS->callback.get_string(TLS, "new password: ", 1, tgl_on_new_pwd, T);
+               return;
+       }
+       tgl_do_act_set_password(TLS, T[5], T[6], T[1],(long)T[0], T[3],(long)T[2], T[4], T[7], T[8]);
+       tfree(T[1],(long)T[0]);
+       tfree(T[3],(long)T[2]);
+       tfree_str(T[4]);
+       tfree_str(T[5]);
+       tfree_str(T[6]);
+       tfree(T, sizeof(void *) * 9);
+}
+
+void tgl_on_new_pwd(struct tgl_state *TLS, char *pwd, void *_T)
+{
+       void **T = _T;
+       T[6] = tstrdup(pwd);
+       TLS->callback.get_string(TLS, "retype new password: ", 1, tgl_on_new2_pwd, T);
+}
+
+void tgl_on_old_pwd(struct tgl_state *TLS, char *pwd, void *_T)
+{
+       void **T = _T;
+       T[5] = tstrdup(pwd);
+       TLS->callback.get_string(TLS, "new password: ", 1, tgl_on_new_pwd, T);
+}
+
+static int set_get_password_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       unsigned x = fetch_int();
+       assert(x == CODE_account_password || x == CODE_account_no_password);
+
+       char *new_salt = "";
+       char *current_salt = NULL;
+
+       char *hint = NULL;
+       int l = 0;
+       int l2 = 0;
+       if (x == CODE_account_no_password) {
+               l2 = prefetch_strlen();
+               new_salt = fetch_str(l2);
+       } else {
+               l = prefetch_strlen();
+               current_salt = fetch_str(l);
+
+               l2 = prefetch_strlen();
+               new_salt = fetch_str(l2);
+
+               hint = fetch_str_dup();
+       }
+
+       char *new_hint = q->extra;
+       void **T = talloc0(sizeof(void *) * 9);
+       T[0] =(void *)(long)l;
+       T[1] = talloc(l);
+       memcpy(T[1], current_salt, l);
+       T[2] =(void *)(long)l2;
+       T[3] = talloc(l2);
+       memcpy(T[3], new_salt, l2);
+       T[4] = new_hint;
+       T[7] = q->callback;
+       T[8] = q->callback_extra;
+
+       if (x == CODE_account_no_password) {
+               TLS->callback.get_string(TLS, "new password: ", 1, tgl_on_new_pwd, T);
+       } else {
+               static char s[512];
+               snprintf(s, 511, "old password(hint %s): ", hint);
+               TLS->callback.get_string(TLS, s, 1, tgl_on_old_pwd, T);
+       }
+       return 0;
+}
+
+static struct query_methods set_get_password_methods = {
+               .on_answer = set_get_password_on_answer,
+               .on_error = q_void_on_error,
+               .type = TYPE_TO_PARAM(account_password)
+};
+
+void tgl_do_set_password(struct tgl_state *TLS, char *hint, void(*callback)(struct tgl_state *TLS, void *extra, int success), void *callback_extra)
+{
+       clear_packet();
+       out_int(CODE_account_get_password);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &set_get_password_methods, hint ? tstrdup(hint) : NULL, callback, callback_extra);
+}
+
+static int check_password_on_error(struct tgl_state *TLS, struct query *q, int error_code, int error_len, char *error)
+{
+       if (error_code == 400) {
+               vlogprintf(E_ERROR, "bad password\n");
+               tgl_do_check_password(TLS, q->callback, q->callback_extra);
+               return 0;
+       }
+       TLS->locks ^= TGL_LOCK_PASSWORD;
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 0);
+       }
+       return 0;
+}
+
+static int check_password_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       assert(skip_type_any(TYPE_TO_PARAM(auth_authorization)) >= 0);
+       TLS->locks ^= TGL_LOCK_PASSWORD;
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 1);
+       }
+       return 0;
+}
+
+static struct query_methods check_password_methods = {
+               .on_answer = check_password_on_answer,
+               .on_error = check_password_on_error,
+               .type = TYPE_TO_PARAM(auth_authorization)
+};
+
+
+static void tgl_pwd_got(struct tgl_state *TLS, char *pwd, void *_T)
+{
+       void **T = _T;
+
+       clear_packet();
+       static char s[512];
+       static unsigned char shab[32];
+
+       char *current_password = pwd;
+       char *current_salt = T[1];
+       int current_salt_len =(long)T[0];
+
+       if (current_password && current_salt) {
+               assert(current_salt_len <= 128);
+               assert(strlen(current_password) <= 128);
+       }
+
+       out_int(CODE_auth_check_password);
+
+       if (current_password && current_salt) {
+               int l = current_salt_len;
+               memcpy(s, current_salt, l);
+
+               int r = strlen(current_password);
+               strcpy(s + l, current_password);
+
+               memcpy(s + l + r, current_salt, l);
+
+               SHA256((void *)s, 2 * l + r, shab);
+               out_cstring((void *)shab, 32);
+       } else {
+               out_string("");
+       }
+
+       tfree(T[1],(long)T[0]);
+       tfree_str(T[2]);
+
+       void *cb = T[3];
+       void *cbe = T[4];
+
+       tfree(T, sizeof(void *) * 5);
+
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &check_password_methods, 0, cb, cbe);
+}
+
+static int check_get_password_on_error(struct tgl_state *TLS, struct query *q, int error_code, int error_len, char *error)
+{
+       TLS->locks ^= TGL_LOCK_PASSWORD;
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 0);
+       }
+       return 0;
+}
+
+static int check_get_password_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       unsigned x = fetch_int();
+       assert(x == CODE_account_password || x == CODE_account_no_password);
+
+       char *current_salt = NULL;
+
+       char *hint = NULL;
+       int l = 0;
+       int l2 = 0;
+       if (x == CODE_account_no_password) {
+               l2 = prefetch_strlen();
+               fetch_str(l2);
+       } else {
+               l = prefetch_strlen();
+               current_salt = fetch_str(l);
+
+               l2 = prefetch_strlen();
+               fetch_str(l2);
+
+               hint = fetch_str_dup();
+       }
+
+       if (x == CODE_account_no_password) {
+               TLS->locks ^= TGL_LOCK_PASSWORD;
+               return 0;
+       }
+       static char s[512];
+       snprintf(s, 511, "type password(hint %s): ", hint);
+
+       void **T = talloc0(sizeof(void *) * 5);
+       T[0] =(void *)(long)l;
+       T[1] = talloc(l);
+       memcpy(T[1], current_salt, l);
+       T[2] = hint;
+       T[3] = q->callback;
+       T[4] = q->callback_extra;
+
+       TLS->callback.get_string(TLS, s, 1, tgl_pwd_got, T);
+       return 0;
+}
+
+static struct query_methods check_get_password_methods = {
+               .on_answer = check_get_password_on_answer,
+               .on_error = check_get_password_on_error,
+               .type = TYPE_TO_PARAM(account_password)
+};
+
+void tgl_do_check_password(struct tgl_state *TLS, void(*callback)(struct tgl_state *TLS, void *extra, int success), void *callback_extra)
+{
+       clear_packet();
+       out_int(CODE_account_get_password);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &check_get_password_methods, NULL, callback, callback_extra);
+}
+
+static int send_broadcast_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       unsigned op = fetch_int();
+       assert(op == CODE_messages_stated_messages || op == CODE_messages_stated_messages_links);
+       assert(fetch_int() == CODE_vector);
+       int num = fetch_int();
+       struct tgl_message **ML = talloc(sizeof(void *) * num);
+       int i;
+       for (i = 0; i < num; i++) {
+               ML[i] = tglf_fetch_alloc_message(TLS);
+               bl_do_msg_set_outbound(TLS, ML[i]->id);
+       }
+       int n;
+       assert(fetch_int() == CODE_vector);
+       n = fetch_int();
+       for (i = 0; i < n; i++) {
+               tglf_fetch_alloc_chat(TLS);
+       }
+       assert(fetch_int() == CODE_vector);
+       n = fetch_int();
+       for (i = 0; i < n; i++) {
+               tglf_fetch_alloc_user(TLS);
+       }
+       if (op == CODE_messages_stated_messages_links) {
+               assert(skip_type_any(TYPE_TO_PARAM_1(vector, TYPE_TO_PARAM(contacts_link))) >= 0);
+       }
+       int pts = fetch_int();
+       int seq = fetch_int();
+
+       if (seq == TLS->seq + 1 && !(TLS->locks & TGL_LOCK_DIFF)) {
+               bl_do_set_pts(TLS, pts);
+               bl_do_set_seq(TLS, seq);
+               int i;
+               for (i = 0; i < num; i++) {
+                       bl_do_msg_update(TLS, ML[i]->id);
+               }
+       } else {
+               if (seq > TLS->seq + 1) {
+                       vlogprintf(E_NOTICE, "Hole in seq\n");
+                       tgl_do_get_difference(TLS, 0, 0, 0);
+               }
+       }
+
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int, int, struct tgl_message **))q->callback)(TLS, q->callback_extra, 1, num, ML);
+       }
+       tfree(ML, num * sizeof(void *));
+
+       return 0;
+}
+
+static struct query_methods send_broadcast_methods = {
+               .on_answer = send_broadcast_on_answer,
+               .on_error = q_list_on_error,
+               .type = TYPE_TO_PARAM(messages_stated_messages)
+};
+
+void tgl_do_send_broadcast(struct tgl_state *TLS, int num, tgl_peer_id_t id[], const char *text, int text_len, void(*callback)(struct tgl_state *TLS, void *extra, int success, int num, struct tgl_message *ML[]), void *callback_extra)
+{
+       clear_packet();
+       out_int(CODE_messages_send_broadcast);
+       out_int(CODE_vector);
+       out_int(num);
+       int i;
+       for (i = 0; i < num; i++) {
+               assert(tgl_get_peer_type(id[i]) == TGL_PEER_USER);
+
+               struct tgl_user *U =(void *)tgl_peer_get(TLS, id[i]);
+               if (U && U->access_hash) {
+                       out_int(CODE_input_user_foreign);
+                       out_int(tgl_get_peer_id(id[i]));
+                       out_long(U->access_hash);
+               } else {
+                       out_int(CODE_input_user_contact);
+                       out_int(tgl_get_peer_id(id[i]));
+               }
+       }
+       out_cstring(text, text_len);
+       out_int(CODE_input_media_empty);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &send_broadcast_methods, 0, callback, callback_extra);
+}
+
+static void set_flag_4(struct tgl_state *TLS, void *_D, int success)
+{
+       struct tgl_dc *D = _D;
+       assert(success);
+       D->flags |= 4;
+
+       TLS->timer_methods->insert(D->ev, TLS->temp_key_expire_time * 0.9);
+}
+
+static int send_bind_temp_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       assert(fetch_int() ==(int)CODE_bool_true);
+       struct tgl_dc *DC = q->extra;
+       DC->flags |= 2;
+       tgl_do_help_get_config_dc(TLS, DC, set_flag_4, DC);
+       vlogprintf(E_DEBUG, "Bind successful in dc %d\n", DC->id);
+       return 0;
+}
+
+static int send_bind_on_error(struct tgl_state *TLS, struct query *q, int error_code, int l, char *error)
+{
+       vlogprintf(E_WARNING, "bind: error %d: %.*s\n", error_code, l, error);
+       if (error_code == 400) {
+               return -11;
+       }
+       return 0;
+}
+
+static struct query_methods send_bind_temp_methods = {
+               .on_answer = send_bind_temp_on_answer,
+               .on_error = send_bind_on_error,
+               .type = TYPE_TO_PARAM(bool)
+};
+
+void tgl_do_send_bind_temp_key(struct tgl_state *TLS, struct tgl_dc *D, long long nonce, int expires_at, void *data, int len, long long msg_id)
+{
+       clear_packet();
+       out_int(CODE_auth_bind_temp_auth_key);
+       out_long(D->auth_key_id);
+       out_long(nonce);
+       out_int(expires_at);
+       out_cstring(data, len);
+       struct query *q = tglq_send_query_ex(TLS, D, packet_ptr - packet_buffer, packet_buffer, &send_bind_temp_methods, D, 0, 0, 2);
+       assert(q->msg_id == msg_id);
+}
+
+static int update_status_on_answer(struct tgl_state *TLS, struct query *q)
+{
+       fetch_bool();
+
+       if (q->callback) {
+               ((void(*)(struct tgl_state *, void *, int))q->callback)(TLS, q->callback_extra, 1);
+       }
+       return 0;
+}
+
+static struct query_methods update_status_methods = {
+               .on_answer = update_status_on_answer,
+               .on_error = q_void_on_error,
+               .type = TYPE_TO_PARAM(bool)
+};
+
+void tgl_do_update_status(struct tgl_state *TLS, int online, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra)
+{
+       clear_packet();
+       out_int(CODE_account_update_status);
+       out_int(online ? CODE_bool_false : CODE_bool_true);
+       tglq_send_query(TLS, TLS->DC_working, packet_ptr - packet_buffer, packet_buffer, &update_status_methods, 0, callback, callback_extra);
+}
+
+
+void tgl_do_request_exchange(struct tgl_state *TLS, struct tgl_secret_chat *E)
+{
+       static unsigned char s[256];
+       tglt_secure_random(s, 256);
+
+       long long id;
+       tglt_secure_random(&id, 8);
+
+       bl_do_encr_chat_exchange_request(TLS, E, id, s);
+
+       BIGNUM *a = BN_bin2bn(s, 256, 0);
+       ensure_ptr(a);
+       BIGNUM *p = BN_bin2bn(TLS->encr_prime, 256, 0);
+       ensure_ptr(p);
+
+       BIGNUM *g = BN_new();
+       ensure_ptr(g);
+
+       ensure(BN_set_word(g, TLS->encr_root));
+
+       BIGNUM *r = BN_new();
+       ensure_ptr(r);
+
+       ensure(BN_mod_exp(r, g, a, p, TLS->BN_ctx));
+
+       static unsigned char kk[256];
+       memset(kk, 0, sizeof(kk));
+       BN_bn2bin(r, kk +(256 - BN_num_bytes(r)));
+
+       BN_clear_free(a);
+       BN_clear_free(g);
+       BN_clear_free(p);
+       BN_clear_free(r);
+
+       static int action[70];
+       action[0] = CODE_decrypted_message_action_request_key;
+       *(long long *)(action + 1) = E->exchange_id;
+       action[3] = 0x100fe;
+       memcpy(action + 4, kk, 256);
+
+       long long t;
+       tglt_secure_random(&t, 8);
+
+       bl_do_send_message_action_encr(TLS, t, TLS->our_id, tgl_get_peer_type(E->id), tgl_get_peer_id(E->id), time(0), 68, action);
+
+       struct tgl_message *M = tgl_message_get(TLS, t);
+       assert(M);
+       assert(M->action.type == tgl_message_action_request_key);
+       tgl_do_send_msg(TLS, M, 0, 0);
+}
+
+void tgl_do_accept_exchange(struct tgl_state *TLS, struct tgl_secret_chat *E, long long exchange_id, unsigned char ga[])
+{
+       static unsigned char s[256];
+       tglt_secure_random(s, 256);
+
+       BIGNUM *b = BN_bin2bn(s, 256, 0);
+       ensure_ptr(b);
+       BIGNUM *g_a = BN_bin2bn(ga, 256, 0);
+       ensure_ptr(g_a);
+
+       assert(tglmp_check_g_a(TLS, TLS->encr_prime_bn, g_a) >= 0);
+       //if (!ctx) {
+       //  ctx = BN_CTX_new();
+       //  ensure_ptr(ctx);
+       //}
+       BIGNUM *p = TLS->encr_prime_bn;
+       ensure_ptr(p);
+       BIGNUM *r = BN_new();
+       ensure_ptr(r);
+       ensure(BN_mod_exp(r, g_a, b, p, TLS->BN_ctx));
+
+       static unsigned char kk[256];
+       memset(kk, 0, sizeof(kk));
+       BN_bn2bin(r, kk +(256 - BN_num_bytes(r)));
+
+       bl_do_encr_chat_exchange_accept(TLS, E, exchange_id, kk);
+
+       ensure(BN_set_word(g_a, TLS->encr_root));
+       ensure(BN_mod_exp(r, g_a, b, p, TLS->BN_ctx));
+
+       static unsigned char buf[256];
+       memset(buf, 0, sizeof(buf));
+       BN_bn2bin(r, buf +(256 - BN_num_bytes(r)));
+
+       static int action[70];
+       action[0] = CODE_decrypted_message_action_accept_key;
+       *(long long *)(action + 1) = E->exchange_id;
+       action[3] = 0x100fe;
+       memcpy(action + 4, buf, 256);
+       *(long long *)(action + 68) = E->exchange_key_fingerprint;
+
+       long long t;
+       tglt_secure_random(&t, 8);
+
+       bl_do_send_message_action_encr(TLS, t, TLS->our_id, tgl_get_peer_type(E->id), tgl_get_peer_id(E->id), time(0), 70, action);
+
+       BN_clear_free(b);
+       BN_clear_free(g_a);
+       BN_clear_free(r);
+
+       struct tgl_message *M = tgl_message_get(TLS, t);
+       assert(M);
+       assert(M->action.type == tgl_message_action_accept_key);
+       tgl_do_send_msg(TLS, M, 0, 0);
+}
+
+void tgl_do_confirm_exchange(struct tgl_state *TLS, struct tgl_secret_chat *E, int sen_nop)
+{
+       bl_do_encr_chat_exchange_confirm(TLS, E);
+       if (sen_nop) {
+               int action = CODE_decrypted_message_action_noop;
+
+               long long t;
+               tglt_secure_random(&t, 8);
+
+               bl_do_send_message_action_encr(TLS, t, TLS->our_id, tgl_get_peer_type(E->id), tgl_get_peer_id(E->id), time(0), 1, &action);
+
+               struct tgl_message *M = tgl_message_get(TLS, t);
+               assert(M);
+               assert(M->action.type == tgl_message_action_noop);
+               tgl_do_send_msg(TLS, M, 0, 0);
+       }
+}
+
+void tgl_do_commit_exchange(struct tgl_state *TLS, struct tgl_secret_chat *E, unsigned char gb[])
+{
+       assert(TLS->encr_prime);
+
+       BIGNUM *g_b = BN_bin2bn(gb, 256, 0);
+       ensure_ptr(g_b);
+       assert(tglmp_check_g_a(TLS, TLS->encr_prime_bn, g_b) >= 0);
+
+       BIGNUM *p = TLS->encr_prime_bn;
+       ensure_ptr(p);
+       BIGNUM *r = BN_new();
+       ensure_ptr(r);
+       BIGNUM *a = BN_bin2bn((void *)E->exchange_key, 256, 0);
+       ensure_ptr(a);
+       ensure(BN_mod_exp(r, g_b, a, p, TLS->BN_ctx));
+
+       static unsigned char s[256];
+       memset(s, 0, 256);
+
+       BN_bn2bin(r, s +(256 - BN_num_bytes(r)));
+
+       BN_clear_free(g_b);
+       BN_clear_free(r);
+       BN_clear_free(a);
+
+       static unsigned char sh[20];
+       SHA1(s, 256, sh);
+
+       int action[4];
+       action[0] = CODE_decrypted_message_action_commit_key;
+       *(long long *)(action + 1) = E->exchange_id;
+       *(long long *)(action + 3) = *(long long *)(sh + 12);
+
+       long long t;
+       tglt_secure_random(&t, 8);
+
+       bl_do_send_message_action_encr(TLS, t, TLS->our_id, tgl_get_peer_type(E->id), tgl_get_peer_id(E->id), time(0), 5, action);
+
+       struct tgl_message *M = tgl_message_get(TLS, t);
+       assert(M);
+       assert(M->action.type == tgl_message_action_commit_key);
+       tgl_do_send_msg(TLS, M, 0, 0);
+
+       bl_do_encr_chat_exchange_commit(TLS, E, s);
+}
+
+void tgl_do_abort_exchange(struct tgl_state *TLS, struct tgl_secret_chat *E)
+{
+       bl_do_encr_chat_exchange_abort(TLS, E);
+}
+
+void tgl_started_cb(struct tgl_state *TLS, void *arg, int success)
+{
+       assert(success);
+       TLS->started = 1;
+       if (TLS->callback.started) {
+               TLS->callback.started(TLS);
+       }
+}
+
+void tgl_export_auth_callback(struct tgl_state *TLS, void *arg, int success)
+{
+       assert(success);
+       int i;
+       for (i = 0; i <= TLS->max_dc_num; i++) if (TLS->DC_list[i] && !tgl_signed_dc(TLS, TLS->DC_list[i])) {
+               return;
+       }
+       if (TLS->callback.logged_in) {
+               TLS->callback.logged_in(TLS);
+       }
+
+       tglm_send_all_unsent(TLS);
+       tgl_do_get_difference(TLS, 0, tgl_started_cb, 0);
+}
+
+void tgl_export_all_auth(struct tgl_state *TLS)
+{
+       int i;
+       int ok = 1;
+       for (i = 0; i <= TLS->max_dc_num; i++) if (TLS->DC_list[i] && !tgl_signed_dc(TLS, TLS->DC_list[i])) {
+               tgl_do_export_auth(TLS, i, tgl_export_auth_callback,(void*)(long)TLS->DC_list[i]);
+               ok = 0;
+       }
+       if (ok) {
+               if (TLS->callback.logged_in) {
+                       TLS->callback.logged_in(TLS);
+               }
+
+               tglm_send_all_unsent(TLS);
+               tgl_do_get_difference(TLS, 0, tgl_started_cb, 0);
+       }
+}
+
+void tgl_sign_in_code(struct tgl_state *TLS, char *code, void *_T);
+
+void tgl_sign_in_result(struct tgl_state *TLS, void *_T, int success, struct tgl_user *U)
+{
+       void **T = _T;
+       if (success) {
+               tfree_str(T[0]);
+               tfree_str(T[1]);
+               tfree(T, sizeof(void *) * 4);
+       } else {
+               vlogprintf(E_ERROR, "incorrect code\n");
+               TLS->callback.get_string(TLS, "code('call' for phone call):", 0, tgl_sign_in_code, T);
+               return;
+       }
+       tgl_export_all_auth(TLS);
+}
+
+void tgl_sign_in_code(struct tgl_state *TLS, char *code, void *_T)
+{
+       void **T = _T;
+       if (!strcmp(code, "call")) {
+               tgl_do_phone_call(TLS, T[0], T[1], 0, 0);
+               TLS->callback.get_string(TLS, "code('call' for phone call):", 0, tgl_sign_in_code, T);
+               return;
+       }
+
+       tgl_do_send_code_result(TLS, T[0], T[1], code, tgl_sign_in_result, T);
+}
+
+void tgl_sign_up_code(struct tgl_state *TLS, char *code, void *_T);
+void tgl_sign_up_result(struct tgl_state *TLS, void *_T, int success, struct tgl_user *U)
+{
+       void **T = _T;
+       if (success) {
+               tfree_str(T[0]);
+               tfree_str(T[1]);
+               tfree_str(T[2]);
+               tfree_str(T[3]);
+               tfree(T, sizeof(void *) * 4);
+       } else {
+               vlogprintf(E_ERROR, "incorrect code\n");
+               TLS->callback.get_string(TLS, "code('call' for phone call):", 0, tgl_sign_up_code, T);
+               return;
+       }
+       tgl_export_all_auth(TLS);
+}
+
+void tgl_sign_up_code(struct tgl_state *TLS, char *code, void *_T)
+{
+       void **T = _T;
+       if (!strcmp(code, "call")) {
+               tgl_do_phone_call(TLS, T[0], T[1], 0, 0);
+               TLS->callback.get_string(TLS, "code('call' for phone call):", 0, tgl_sign_up_code, T);
+               return;
+       }
+
+       tgl_do_send_code_result_auth(TLS, T[0], T[1], code, T[2], T[3], tgl_sign_up_result, T);
+}
+
+
+void tgl_last_name_cb(struct tgl_state *TLS, char *last_name, void *_T)
+{
+       void **T = _T;
+       T[3] = tstrdup(last_name);
+       TLS->callback.get_string(TLS, "code('call' for phone call):", 0, tgl_sign_up_code, T);
+}
+
+void tgl_first_name_cb(struct tgl_state *TLS, char *first_name, void *_T)
+{
+       void **T = _T;
+       if (strlen(first_name) < 1) {
+               TLS->callback.get_string(TLS, "First name:", 0, tgl_first_name_cb, T);
+               return;
+       }
+       T[2] = tstrdup(first_name);
+       TLS->callback.get_string(TLS, "Last name:", 0, tgl_last_name_cb, T);
+}
+
+void tgl_register_cb(struct tgl_state *TLS, char *yn, void *_T)
+{
+       void **T = _T;
+       if (strlen(yn) > 1) {
+               TLS->callback.get_string(TLS, "register [Y/n]:", 0, tgl_register_cb, _T);
+       } else if (strlen(yn) == 0 || *yn == 'y' || *yn == 'Y') {
+               TLS->callback.get_string(TLS, "First name:", 0, tgl_first_name_cb, _T);
+       } else if (*yn == 'n' || *yn == 'N') {
+               vlogprintf(E_ERROR, "stopping registration");
+               tfree_str(T[0]);
+               tfree_str(T[1]);
+               tfree(T, sizeof(void *) * 4);
+               tgl_login(TLS);
+       } else {
+               TLS->callback.get_string(TLS, "register [Y/n]:", 0, tgl_register_cb, _T);
+       }
+}
+
+void tgl_sign_in_phone(struct tgl_state *TLS, char *phone, void *arg);
+void tgl_sign_in_phone_cb(struct tgl_state *TLS, void *extra, int success, int registered, const char *mhash)
+{
+       void **T = extra;
+       if (!success) {
+               vlogprintf(E_ERROR, "Incorrect phone number\n");
+               tfree_str(T[0]);
+               tfree(T, sizeof(void *) * 4);
+               TLS->callback.get_string(TLS, "phone number:", 0, tgl_sign_in_phone, NULL);
+               return;
+       }
+       T[1] = tstrdup(mhash);
+       if (registered) {
+               TLS->callback.get_string(TLS, "code('call' for phone call):", 0, tgl_sign_in_code, T);
+       } else {
+               TLS->callback.get_string(TLS, "register [Y/n]:", 0, tgl_register_cb, T);
+       }
+}
+
+void tgl_sign_in_phone(struct tgl_state *TLS, char *phone, void *arg)
+{
+       void **T = talloc0(sizeof(void *) * 4);
+       T[0] = tstrdup(phone);
+       tgl_do_send_code(TLS, phone, tgl_sign_in_phone_cb, T);
+}
+
+void tgl_sign_in(struct tgl_state *TLS)
+{
+       if (!tgl_signed_dc(TLS, TLS->DC_working)) {
+               TLS->callback.get_string(TLS, "phone number:", 0, tgl_sign_in_phone, NULL);
+       } else {
+               tgl_export_all_auth(TLS);
+       }
+}
+
+static void check_authorized(struct tgl_state *TLS, void *arg)
+{
+       int i;
+       int ok = 1;
+       for (i = 0; i <= TLS->max_dc_num; i++) {
+               if (TLS->DC_list[i] && !tgl_authorized_dc(TLS, TLS->DC_list[i])) {
+                       ok = 0;
+                       break;
+               }
+       }
+
+       if (ok) {
+               TLS->timer_methods->free(TLS->ev_login);
+               TLS->ev_login = NULL;
+               tgl_sign_in(TLS);
+       } else {
+               TLS->timer_methods->insert(TLS->ev_login, 0.1);
+       }
+}
+
+void tgl_login(struct tgl_state *TLS)
+{
+       int i;
+       int ok = 1;
+       for (i = 0; i <= TLS->max_dc_num; i++) {
+               if (TLS->DC_list[i] && !tgl_authorized_dc(TLS, TLS->DC_list[i])) {
+                       ok = 0;
+                       break;
+               }
+       }
+       if (!ok) {
+               TLS->ev_login = TLS->timer_methods->alloc(TLS, check_authorized, NULL);
+               TLS->timer_methods->insert(TLS->ev_login, 0.1);
+       } else {
+               tgl_sign_in(TLS);
+       }
+}
diff --git a/tg-engine-service/mtprotocol/queries.h b/tg-engine-service/mtprotocol/queries.h
new file mode 100644 (file)
index 0000000..b8b7947
--- /dev/null
@@ -0,0 +1,69 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or(at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Vitaly Valtman 2013-2015
+ */
+
+#ifndef __QUERIES_H__
+#define __QUERIES_H__
+#include "tgl-structures.h"
+#include "auto.h"
+#include "tgl-layout.h"
+
+#define QUERY_ACK_RECEIVED 1
+#define QUERY_FORCE_SEND 2
+
+struct query;
+struct query_methods {
+       int(*on_answer)(struct tgl_state *TLS, struct query *q);
+       int(*on_error)(struct tgl_state *TLS, struct query *q, int error_code, int len, char *error);
+       int(*on_timeout)(struct tgl_state *TLS, struct query *q);
+       struct paramed_type *type;
+};
+
+struct query {
+       long long msg_id;
+       int data_len;
+       int flags;
+       int seq_no;
+       long long session_id;
+       void *data;
+       struct query_methods *methods;
+       struct tgl_timer *ev;
+       struct tgl_dc *DC;
+       struct tgl_session *session;
+       struct paramed_type *type;
+       void *extra;
+       void *callback;
+       void *callback_extra;
+};
+
+struct query *tglq_send_query(struct tgl_state *TLS, struct tgl_dc *DC, int len, void *data, struct query_methods *methods, void *extra, void *callback, void *callback_extra);
+void tglq_query_ack(struct tgl_state *TLS, long long id);
+int tglq_query_error(struct tgl_state *TLS, long long id);
+int tglq_query_result(struct tgl_state *TLS, long long id);
+void tglq_query_restart(struct tgl_state *TLS, long long id);
+double get_double_time(void);
+void tgl_do_send_bind_temp_key(struct tgl_state *TLS, struct tgl_dc *D, long long nonce, int expires_at, void *data, int len, long long msg_id);
+void tgl_do_request_exchange(struct tgl_state *TLS, struct tgl_secret_chat *E);
+void tgl_do_confirm_exchange(struct tgl_state *TLS, struct tgl_secret_chat *E, int sen_nop);
+void tgl_do_accept_exchange(struct tgl_state *TLS, struct tgl_secret_chat *E, long long exchange_id, unsigned char g_a[]);
+void tgl_do_commit_exchange(struct tgl_state *TLS, struct tgl_secret_chat *E, unsigned char g_a[]);
+void tgl_do_abort_exchange(struct tgl_state *TLS, struct tgl_secret_chat *E);
+void tglq_regen_query(struct tgl_state *TLS, long long id);
+void tglq_query_delete(struct tgl_state *TLS, long long id);
+#endif
diff --git a/tg-engine-service/mtprotocol/structures.c b/tg-engine-service/mtprotocol/structures.c
new file mode 100644 (file)
index 0000000..55d0cc2
--- /dev/null
@@ -0,0 +1,2293 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or(at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Vitaly Valtman 2013-2015
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <assert.h>
+#include <string.h>
+#include "tgl-structures.h"
+#include "mtproto-common.h"
+#include "tree.h"
+#include <openssl/aes.h>
+#include <openssl/bn.h>
+#include <openssl/sha.h>
+#include "queries.h"
+#include "tgl-binlog.h"
+#include "updates.h"
+#include "mtproto-client.h"
+#include "tgl.h"
+
+#define sha1 SHA1
+
+static int id_cmp(struct tgl_message *M1, struct tgl_message *M2);
+
+#define peer_cmp(a,b)(tgl_cmp_peer_id(a->id, b->id))
+#define peer_cmp_name(a,b)(strcmp(a->print_name, b->print_name))
+DEFINE_TREE(peer,tgl_peer_t *,peer_cmp,0)
+DEFINE_TREE(peer_by_name,tgl_peer_t *,peer_cmp_name,0)
+DEFINE_TREE(message,struct tgl_message *,id_cmp,0)
+
+char *tgls_default_create_print_name(struct tgl_state *TLS, tgl_peer_id_t id, const char *a1, const char *a2, const char *a3, const char *a4)
+{
+       const char *d[4];
+       d[0] = a1; d[1] = a2; d[2] = a3; d[3] = a4;
+       static char buf[10000];
+       buf[0] = 0;
+       int i;
+       int p = 0;
+       for (i = 0; i < 4; i++) {
+               if (d[i] && strlen(d[i])) {
+                       p += tsnprintf(buf + p, 9999 - p, "%s%s", p ? "_" : "", d[i]);
+                       assert(p < 9990);
+               }
+       }
+       char *s = buf;
+       while(*s) {
+               if (((unsigned char)*s) <= ' ') { *s = '_'; }
+               if (*s == '#') { *s = '@'; }
+               s++;
+       }
+       s = buf;
+       int fl = strlen(s);
+       int cc = 0;
+       while(1) {
+               tgl_peer_t *P = tgl_peer_get_by_name(TLS, s);
+               if (!P || !tgl_cmp_peer_id(P->id, id)) {
+                       break;
+               }
+               cc ++;
+               assert(cc <= 9999);
+               tsnprintf(s + fl, 9999 - fl, "#%d", cc);
+       }
+       return tstrdup(s);
+}
+
+enum tgl_typing_status tglf_fetch_typing(void)
+{
+       switch (fetch_int()) {
+       case CODE_send_message_typing_action:
+               return tgl_typing_typing;
+       case CODE_send_message_cancel_action:
+               return tgl_typing_cancel;
+       case CODE_send_message_record_video_action:
+               return tgl_typing_record_video;
+       case CODE_send_message_upload_video_action:
+               return tgl_typing_upload_video;
+       case CODE_send_message_record_audio_action:
+               return tgl_typing_record_audio;
+       case CODE_send_message_upload_audio_action:
+               return tgl_typing_upload_audio;
+       case CODE_send_message_upload_photo_action:
+               return tgl_typing_upload_photo;
+       case CODE_send_message_upload_document_action:
+               return tgl_typing_upload_document;
+       case CODE_send_message_geo_location_action:
+               return tgl_typing_geo;
+       case CODE_send_message_choose_contact_action:
+               return tgl_typing_choose_contact;
+       default:
+               assert(0);
+               return tgl_typing_none;
+       }
+}
+
+int tglf_fetch_file_location(struct tgl_state *TLS, struct tgl_file_location *loc)
+{
+       int x = fetch_int();
+       assert(x == CODE_file_location_unavailable || x == CODE_file_location);
+
+       if (x == CODE_file_location_unavailable) {
+               loc->dc = -1;
+               loc->volume = fetch_long();
+               loc->local_id = fetch_int();
+               loc->secret = fetch_long();
+       } else {
+               loc->dc = fetch_int();
+               loc->volume = fetch_long();
+               loc->local_id = fetch_int();
+               loc->secret = fetch_long();
+       }
+       return 0;
+}
+
+int tglf_fetch_user_status(struct tgl_state *TLS, struct tgl_user_status *S, struct tgl_user *U)
+{
+       unsigned x = fetch_int();
+       switch (x) {
+       case CODE_user_status_empty:
+               if (S->online) {
+                       tgl_insert_status_update(TLS, U);
+                       if (S->online == 1) {
+                               tgl_remove_status_expire(TLS, U);
+                       }
+               }
+               S->online = 0;
+               S->when = 0;
+               break;
+       case CODE_user_status_online:
+       {
+               int when = fetch_int();
+               if (S->online != 1) {
+                       S->when = when;
+                       tgl_insert_status_update(TLS, U);
+                       tgl_insert_status_expire(TLS, U);
+                       S->online = 1;
+               } else {
+                       if (when != S->when) {
+                               S->when = when;
+                               tgl_remove_status_expire(TLS, U);
+                               tgl_insert_status_expire(TLS, U);
+                       }
+               }
+       }
+       break;
+       case CODE_user_status_offline:
+               if (S->online != -1) {
+                       tgl_insert_status_update(TLS, U);
+                       if (S->online == 1) {
+                               tgl_remove_status_expire(TLS, U);
+                       }
+               }
+               S->online = -1;
+               S->when = fetch_int();
+               break;
+       case CODE_user_status_recently:
+               if (S->online != -2) {
+                       tgl_insert_status_update(TLS, U);
+                       if (S->online == 1) {
+                               tgl_remove_status_expire(TLS, U);
+                       }
+               }
+               S->online = -2;
+               break;
+       case CODE_user_status_last_week:
+               if (S->online != -3) {
+                       tgl_insert_status_update(TLS, U);
+                       if (S->online == 1) {
+                               tgl_remove_status_expire(TLS, U);
+                       }
+               }
+               S->online = -3;
+               break;
+       case CODE_user_status_last_month:
+               if (S->online != -4) {
+                       tgl_insert_status_update(TLS, U);
+                       if (S->online == 1) {
+                               tgl_remove_status_expire(TLS, U);
+                       }
+               }
+               S->online = -4;
+               break;
+       default:
+               vlogprintf(E_ERROR, "x = 0x%08x\n", x);
+               assert(0);
+       }
+       return 0;
+}
+
+long long tglf_fetch_user_photo(struct tgl_state *TLS, struct tgl_user *U)
+{
+       unsigned x = fetch_int();
+       assert(x == CODE_user_profile_photo || x == CODE_user_profile_photo_old || x == CODE_user_profile_photo_empty);
+       if (x == CODE_user_profile_photo_empty) {
+               bl_do_set_user_profile_photo(TLS, U, 0, 0, 0);
+               return 0;
+       }
+       long long photo_id = 1;
+       if (x == CODE_user_profile_photo) {
+               photo_id = fetch_long();
+       }
+       static struct tgl_file_location big;
+       static struct tgl_file_location small;
+       assert(tglf_fetch_file_location(TLS, &small) >= 0);
+       assert(tglf_fetch_file_location(TLS, &big) >= 0);
+
+       bl_do_set_user_profile_photo(TLS, U, photo_id, &big, &small);
+       return 0;
+}
+
+int tglf_fetch_user(struct tgl_state *TLS, struct tgl_user *U)
+{
+       unsigned x = fetch_int();
+       assert(x == CODE_user_empty || x == CODE_user_self || x == CODE_user_contact ||  x == CODE_user_request || x == CODE_user_foreign || x == CODE_user_deleted);
+       U->id = TGL_MK_USER(fetch_int());
+       if (x == CODE_user_empty) {
+               return 0;
+       }
+
+       if (x == CODE_user_self) {
+               bl_do_set_our_id(TLS, tgl_get_peer_id(U->id));
+       }
+
+       int new = !(U->flags & FLAG_CREATED);
+       if (new) {
+               int l1 = prefetch_strlen();
+               assert(l1 >= 0);
+               char *s1 = fetch_str(l1);
+               int l2 = prefetch_strlen();
+               assert(l2 >= 0);
+               char *s2 = fetch_str(l2);
+
+               int l3 = prefetch_strlen();
+               char *s3 = fetch_str(l3);
+
+               if (x == CODE_user_deleted && !(U->flags & FLAG_DELETED)) {
+                       bl_do_user_add(TLS, tgl_get_peer_id(U->id), s1, l1, s2, l2, 0, 0, 0, 0);
+                       bl_do_user_set_username(TLS, U, s3, l3);
+                       bl_do_user_delete(TLS, U);
+               }
+               if (x != CODE_user_deleted) {
+                       long long access_hash = 0;
+                       if (x != CODE_user_self) {
+                               access_hash = fetch_long();
+                       }
+                       int phone_len = 0;
+                       char *phone = 0;
+                       if (x != CODE_user_foreign) {
+                               phone_len = prefetch_strlen();
+                               assert(phone_len >= 0);
+                               phone = fetch_str(phone_len);
+                       }
+                       bl_do_user_add(TLS, tgl_get_peer_id(U->id), s1, l1, s2, l2, access_hash, phone, phone_len, x == CODE_user_contact);
+                       bl_do_user_set_username(TLS, U, s3, l3);
+                       assert(tglf_fetch_user_photo(TLS, U) >= 0);
+                       assert(tglf_fetch_user_status(TLS, &U->status, U) >= 0);
+
+                       if (x == CODE_user_self) {
+                               fetch_bool();
+                       }
+               }
+       } else {
+               int l1 = prefetch_strlen();
+               char *s1 = fetch_str(l1);
+               int l2 = prefetch_strlen();
+               char *s2 = fetch_str(l2);
+
+               bl_do_user_set_name(TLS, U, s1, l1, s2, l2);
+
+               int l3 = prefetch_strlen();
+               char *s3 = fetch_str(l3);
+               bl_do_user_set_username(TLS, U, s3, l3);
+
+               if (x == CODE_user_deleted && !(U->flags & FLAG_DELETED)) {
+                       bl_do_user_delete(TLS, U);
+               }
+               if (x != CODE_user_deleted) {
+                       if (x != CODE_user_self) {
+                               bl_do_user_set_access_hash(TLS, U, fetch_long());
+                       }
+                       if (x != CODE_user_foreign) {
+                               int l = prefetch_strlen();
+                               char *s = fetch_str(l);
+                               bl_do_user_set_phone(TLS, U, s, l);
+                       }
+                       assert(tglf_fetch_user_photo(TLS, U) >= 0);
+
+                       tglf_fetch_user_status(TLS, &U->status, U);
+                       if (x == CODE_user_self) {
+                               fetch_bool();
+                       }
+
+                       if (x == CODE_user_contact) {
+                               bl_do_user_set_friend(TLS, U, 1);
+                       } else {
+                               bl_do_user_set_friend(TLS, U, 0);
+                       }
+               }
+       }
+       return 0;
+}
+
+void tglf_fetch_user_full(struct tgl_state *TLS, struct tgl_user *U)
+{
+       assert(fetch_int() == CODE_user_full);
+       tglf_fetch_alloc_user(TLS);
+       assert(skip_type_any(TYPE_TO_PARAM(contacts_link)) >= 0);
+
+       int *start = in_ptr;
+       assert(skip_type_any(TYPE_TO_PARAM(photo)) >= 0);
+       bl_do_user_set_full_photo(TLS, U, start, 4 *(in_ptr - start));
+
+       assert(skip_type_any(TYPE_TO_PARAM(peer_notify_settings)) >= 0);
+
+       bl_do_user_set_blocked(TLS, U, fetch_bool());
+       int l1 = prefetch_strlen();
+       char *s1 = fetch_str(l1);
+       int l2 = prefetch_strlen();
+       char *s2 = fetch_str(l2);
+       if (U &&(U->flags & FLAG_CREATED)) {
+               bl_do_user_set_real_name(TLS, U, s1, l1, s2, l2);
+       }
+}
+
+void tglf_fetch_encrypted_chat(struct tgl_state *TLS, struct tgl_secret_chat *U)
+{
+       unsigned x = fetch_int();
+       assert(x == CODE_encrypted_chat_empty || x == CODE_encrypted_chat_waiting || x == CODE_encrypted_chat_requested ||  x == CODE_encrypted_chat || x == CODE_encrypted_chat_discarded);
+       U->id = TGL_MK_ENCR_CHAT(fetch_int());
+       if (x == CODE_encrypted_chat_empty) {
+               return;
+       }
+       int new = !(U->flags & FLAG_CREATED);
+
+       if (x == CODE_encrypted_chat_discarded) {
+               if (new) {
+                       vlogprintf(E_WARNING, "Unknown chat in deleted state. May be we forgot something...\n");
+                       return;
+               }
+               bl_do_encr_chat_delete(TLS, U);
+               //write_secret_chat_file();
+               return;
+       }
+
+       static char g_key[256];
+       static char nonce[256];
+       if (new) {
+               long long access_hash = fetch_long();
+               int date = fetch_int();
+               int admin_id = fetch_int();
+               int user_id = fetch_int() + admin_id - TLS->our_id;
+
+               if (x == CODE_encrypted_chat_waiting) {
+                       vlogprintf(E_WARNING, "Unknown chat in waiting state. May be we forgot something...\n");
+                       return;
+               }
+               if (x == CODE_encrypted_chat_requested || x == CODE_encrypted_chat) {
+                       memset(g_key, 0, sizeof(g_key));
+               }
+
+               fetch256(g_key);
+
+               if (x == CODE_encrypted_chat) {
+                       fetch_long(); // fingerprint
+               }
+
+               if (x == CODE_encrypted_chat) {
+                       vlogprintf(E_WARNING, "Unknown chat in ok state. May be we forgot something...\n");
+                       return;
+               }
+
+               bl_do_encr_chat_requested(TLS, U, access_hash, date, admin_id, user_id,(void *)g_key,(void *)nonce);
+               //write_secret_chat_file();
+       } else {
+               bl_do_encr_chat_set_access_hash(TLS, U, fetch_long());
+               bl_do_encr_chat_set_date(TLS, U, fetch_int());
+               if (fetch_int() != U->admin_id) {
+                       vlogprintf(E_WARNING, "Changed admin in secret chat. WTF?\n");
+                       return;
+               }
+               if (U->user_id != U->admin_id + fetch_int() - TLS->our_id) {
+                       vlogprintf(E_WARNING, "Changed partner in secret chat. WTF?\n");
+                       return;
+               }
+               if (x == CODE_encrypted_chat_waiting) {
+                       bl_do_encr_chat_set_state(TLS, U, sc_waiting);
+                       //write_secret_chat_file();
+                       return; // We needed only access hash from here
+               }
+
+               if (x == CODE_encrypted_chat_requested || x == CODE_encrypted_chat) {
+                       memset(g_key, 0, sizeof(g_key));
+               }
+
+               fetch256(g_key);
+
+               if (x == CODE_encrypted_chat_requested) {
+                       return; // Duplicate?
+               }
+               bl_do_encr_chat_accepted(TLS, U,(void *)g_key,(void *)nonce, fetch_long());
+               //write_secret_chat_file();
+       }
+}
+
+void tglf_fetch_chat(struct tgl_state *TLS, struct tgl_chat *C)
+{
+       unsigned x = fetch_int();
+       assert(x == CODE_chat_empty || x == CODE_chat || x == CODE_chat_forbidden);
+       C->id = TGL_MK_CHAT(fetch_int());
+       if (x == CODE_chat_empty) {
+               return;
+       }
+       int new = !(C->flags & FLAG_CREATED);
+       if (new) {
+               int y = 0;
+               if (x == CODE_chat_forbidden) {
+                       y |= FLAG_FORBIDDEN;
+               }
+               int l = prefetch_strlen();
+               char *s = fetch_str(l);
+
+               struct tgl_file_location small;
+               struct tgl_file_location big;
+               memset(&small, 0, sizeof(small));
+               memset(&big, 0, sizeof(big));
+               int users_num = -1;
+               int date = 0;
+               int version = -1;
+
+               if (x == CODE_chat) {
+                       unsigned z = fetch_int();
+                       if (z == CODE_chat_photo_empty) {
+                               small.dc = -2;
+                               big.dc = -2;
+                       } else {
+                               assert(z == CODE_chat_photo);
+                               tglf_fetch_file_location(TLS, &small);
+                               tglf_fetch_file_location(TLS, &big);
+                       }
+                       users_num = fetch_int();
+                       date = fetch_int();
+                       if (fetch_bool()) {
+                               y |= FLAG_CHAT_IN_CHAT;
+                       }
+                       version = fetch_int();
+               } else {
+                       small.dc = -2;
+                       big.dc = -2;
+                       users_num = -1;
+                       date = fetch_int();
+                       version = -1;
+               }
+
+               bl_do_create_chat(TLS, C, y, s, l, users_num, date, version, &big, &small);
+       } else {
+               if (x == CODE_chat_forbidden) {
+                       bl_do_chat_forbid(TLS, C, 1);
+               } else {
+                       bl_do_chat_forbid(TLS, C, 0);
+               }
+               int l = prefetch_strlen();
+               char *s = fetch_str(l);
+               bl_do_chat_set_title(TLS, C, s, l);
+
+               struct tgl_file_location small;
+               struct tgl_file_location big;
+               memset(&small, 0, sizeof(small));
+               memset(&big, 0, sizeof(big));
+
+               if (x == CODE_chat) {
+                       unsigned y = fetch_int();
+                       if (y == CODE_chat_photo_empty) {
+                               small.dc = -2;
+                               big.dc = -2;
+                       } else {
+                               assert(y == CODE_chat_photo);
+                               tglf_fetch_file_location(TLS, &small);
+                               tglf_fetch_file_location(TLS, &big);
+                       }
+                       bl_do_chat_set_photo(TLS, C, &big, &small);
+                       int users_num = fetch_int();
+                       bl_do_chat_set_date(TLS, C, fetch_int());
+                       bl_do_chat_set_set_in_chat(TLS, C, fetch_bool());
+                       bl_do_chat_set_version(TLS, C, users_num, fetch_int());
+               } else {
+                       bl_do_chat_set_date(TLS, C, fetch_int());
+               }
+       }
+}
+
+void tglf_fetch_chat_full(struct tgl_state *TLS, struct tgl_chat *C)
+{
+       unsigned x = fetch_int();
+       assert(x == CODE_messages_chat_full);
+       assert(fetch_int() == CODE_chat_full);
+       C->id = TGL_MK_CHAT(fetch_int());
+       x = fetch_int();
+       int version = 0;
+       struct tgl_chat_user *users = 0;
+       int users_num = 0;
+       int admin_id = 0;
+
+       if (x == CODE_chat_participants) {
+               assert(fetch_int() == tgl_get_peer_id(C->id));
+               admin_id =  fetch_int();
+               assert(fetch_int() == CODE_vector);
+               users_num = fetch_int();
+               users = talloc(sizeof(struct tgl_chat_user) * users_num);
+               int i;
+               for (i = 0; i < users_num; i++) {
+                       assert(fetch_int() ==(int)CODE_chat_participant);
+                       users[i].user_id = fetch_int();
+                       users[i].inviter_id = fetch_int();
+                       users[i].date = fetch_int();
+               }
+               version = fetch_int();
+       } else {
+               fetch_int();
+       }
+       int *start = in_ptr;
+       assert(skip_type_any(TYPE_TO_PARAM(photo)) >= 0);
+       int *end = in_ptr;
+       assert(skip_type_any(TYPE_TO_PARAM(peer_notify_settings)) >= 0);
+
+       int n, i;
+       assert(fetch_int() == CODE_vector);
+       n = fetch_int();
+       for (i = 0; i < n; i++) {
+               tglf_fetch_alloc_chat(TLS);
+       }
+       assert(fetch_int() == CODE_vector);
+       n = fetch_int();
+       for (i = 0; i < n; i++) {
+               tglf_fetch_alloc_user(TLS);
+       }
+       if (admin_id) {
+               bl_do_chat_set_admin(TLS, C, admin_id);
+       }
+       if (version > 0) {
+               bl_do_chat_set_participants(TLS, C, version, users_num, users);
+               tfree(users, sizeof(struct tgl_chat_user) * users_num);
+       }
+       bl_do_chat_set_full_photo(TLS, C, start, 4 *(end - start));
+}
+
+void tglf_fetch_photo_size(struct tgl_state *TLS, struct tgl_photo_size *S)
+{
+       memset(S, 0, sizeof(*S));
+       unsigned x = fetch_int();
+       assert(x == CODE_photo_size || x == CODE_photo_cached_size || x == CODE_photo_size_empty);
+       S->type = fetch_str_dup();
+       if (x != CODE_photo_size_empty) {
+               tglf_fetch_file_location(TLS, &S->loc);
+               S->w = fetch_int();
+               S->h = fetch_int();
+               if (x == CODE_photo_size) {
+                       S->size = fetch_int();
+               } else {
+                       S->size = prefetch_strlen();
+                       fetch_str(S->size);
+               }
+       }
+}
+
+void tglf_fetch_geo(struct tgl_state *TLS, struct tgl_geo *G)
+{
+       unsigned x = fetch_int();
+       if (x == CODE_geo_point) {
+               G->longitude = fetch_double();
+               G->latitude = fetch_double();
+       } else {
+               assert(x == CODE_geo_point_empty);
+               G->longitude = 0;
+               G->latitude = 0;
+       }
+}
+
+void tglf_fetch_photo(struct tgl_state *TLS, struct tgl_photo *P)
+{
+       memset(P, 0, sizeof(*P));
+       unsigned x = fetch_int();
+       assert(x == CODE_photo_empty || x == CODE_photo);
+       P->id = fetch_long();
+       if (x == CODE_photo_empty) { return; }
+       P->access_hash = fetch_long();
+       P->user_id = fetch_int();
+       P->date = fetch_int();
+       P->caption = fetch_str_dup();
+       tglf_fetch_geo(TLS, &P->geo);
+       assert(fetch_int() == CODE_vector);
+       P->sizes_num = fetch_int();
+       P->sizes = talloc(sizeof(struct tgl_photo_size) * P->sizes_num);
+       int i;
+       for (i = 0; i < P->sizes_num; i++) {
+               tglf_fetch_photo_size(TLS, &P->sizes[i]);
+       }
+}
+
+void tglf_fetch_video(struct tgl_state *TLS, struct tgl_document *V)
+{
+       memset(V, 0, sizeof(*V));
+       V->flags = FLAG_DOCUMENT_VIDEO;
+       unsigned x = fetch_int();
+       V->id = fetch_long();
+       if (x == CODE_video_empty) { return; }
+       V->access_hash = fetch_long();
+       V->user_id = fetch_int();
+       V->date = fetch_int();
+       V->caption = fetch_str_dup();
+       V->duration = fetch_int();
+       V->mime_type = fetch_str_dup();
+       V->size = fetch_int();
+       tglf_fetch_photo_size(TLS, &V->thumb);
+       V->dc_id = fetch_int();
+       V->w = fetch_int();
+       V->h = fetch_int();
+}
+
+void tglf_fetch_audio(struct tgl_state *TLS, struct tgl_document *V)
+{
+       memset(V, 0, sizeof(*V));
+       V->flags = FLAG_DOCUMENT_AUDIO;
+       unsigned x = fetch_int();
+       V->id = fetch_long();
+       if (x == CODE_audio_empty) { return; }
+       V->access_hash = fetch_long();
+       V->user_id = fetch_int();
+       V->date = fetch_int();
+       V->duration = fetch_int();
+       V->mime_type = fetch_str_dup();
+       V->size = fetch_int();
+       V->dc_id = fetch_int();
+}
+
+void tglf_fetch_document_attribute(struct tgl_state *TLS, struct tgl_document *V)
+{
+       unsigned x = fetch_int();
+       switch (x) {
+       case CODE_document_attribute_image_size:
+               V->flags |= FLAG_DOCUMENT_IMAGE;
+               V->w = fetch_int();
+               V->h = fetch_int();
+               return;
+       case CODE_document_attribute_animated:
+               V->flags |= FLAG_DOCUMENT_ANIMATED;
+               return;
+       case CODE_document_attribute_sticker:
+               V->flags |= FLAG_DOCUMENT_STICKER;
+               return;
+       case CODE_document_attribute_video:
+               V->flags |= FLAG_DOCUMENT_VIDEO;
+               V->duration = fetch_int();
+               V->w = fetch_int();
+               V->h = fetch_int();
+               return;
+       case CODE_document_attribute_audio:
+               V->flags |= FLAG_DOCUMENT_AUDIO;
+               V->duration = fetch_int();
+               return;
+       case CODE_document_attribute_filename:
+               V->caption = fetch_str_dup();
+               return;
+       default:
+               vlogprintf(E_ERROR, "x = 0x%08x\n", x);
+               assert(0);
+       }
+}
+
+void tglf_fetch_document(struct tgl_state *TLS, struct tgl_document *V)
+{
+       memset(V, 0, sizeof(*V));
+       unsigned x = fetch_int();
+       V->id = fetch_long();
+       if (x == CODE_document_empty) { return; }
+       if (x == CODE_document_l19) {
+               V->access_hash = fetch_long();
+               V->user_id = fetch_int();
+               V->date = fetch_int();
+               V->caption = fetch_str_dup();
+               V->mime_type = fetch_str_dup();
+               V->size = fetch_int();
+               tglf_fetch_photo_size(TLS, &V->thumb);
+               V->dc_id = fetch_int();
+       } else {
+               V->access_hash = fetch_long();
+               V->date = fetch_int();
+               V->mime_type = fetch_str_dup();
+               V->size = fetch_int();
+               tglf_fetch_photo_size(TLS, &V->thumb);
+               V->dc_id = fetch_int();
+
+               assert(fetch_int() == CODE_vector);
+               int num = fetch_int();
+               int i;
+               for (i = 0; i < num; i++) {
+                       tglf_fetch_document_attribute(TLS, V);
+               }
+       }
+}
+
+void tglf_fetch_message_action(struct tgl_state *TLS, struct tgl_message_action *M)
+{
+       memset(M, 0, sizeof(*M));
+       unsigned x = fetch_int();
+       switch (x) {
+       case CODE_message_action_empty:
+               M->type = tgl_message_action_none;
+               break;
+       case CODE_message_action_geo_chat_create:
+       {
+               M->type = tgl_message_action_geo_chat_create;
+               int l = prefetch_strlen(); // title
+               char *s = fetch_str(l);
+               int l2 = prefetch_strlen(); // checkin
+               char *s2 = fetch_str(l2);
+               vlogprintf(E_ERROR, "Message action: Created geochat %.*s in address %.*s. You are in magic land now, since nobody ever tested geochats in this app\n", l, s, l2, s2);
+       }
+       break;
+       case CODE_message_action_geo_chat_checkin:
+               M->type = tgl_message_action_geo_chat_checkin;
+               break;
+       case CODE_message_action_chat_create:
+               M->type = tgl_message_action_chat_create;
+               M->title = fetch_str_dup();
+               assert(fetch_int() ==(int)CODE_vector);
+               M->user_num = fetch_int();
+               M->users = talloc(M->user_num * 4);
+               fetch_ints(M->users, M->user_num);
+               break;
+       case CODE_message_action_chat_edit_title:
+               M->type = tgl_message_action_chat_edit_title;
+               M->new_title = fetch_str_dup();
+               break;
+       case CODE_message_action_chat_edit_photo:
+               M->type = tgl_message_action_chat_edit_photo;
+               tglf_fetch_photo(TLS, &M->photo);
+               break;
+       case CODE_message_action_chat_delete_photo:
+               M->type = tgl_message_action_chat_delete_photo;
+               break;
+       case CODE_message_action_chat_add_user:
+               M->type = tgl_message_action_chat_add_user;
+               M->user = fetch_int();
+               break;
+       case CODE_message_action_chat_delete_user:
+               M->type = tgl_message_action_chat_delete_user;
+               M->user = fetch_int();
+               break;
+       default:
+               vlogprintf(E_ERROR, "type = %d\n", x);
+               assert(0);
+       }
+}
+
+void tglf_fetch_message_short(struct tgl_state *TLS, struct tgl_message *M)
+{
+       int new = !(M->flags & FLAG_CREATED);
+
+       if (new) {
+               int id = fetch_int();
+               int from_id = fetch_int();
+               int to_id = TLS->our_id;
+               int l = prefetch_strlen();
+               char *s = fetch_str(l);
+
+               int pts = fetch_int();
+
+               int date = fetch_int();
+               //tglu_fetch_seq();
+               int seq = fetch_int();
+               assert(seq == TLS->seq + 1);
+
+               bl_do_create_message_text(TLS, id, from_id, TGL_PEER_USER, to_id, date, 1, l, s);
+
+               tgl_peer_t *P = tgl_peer_get(TLS, TGL_MK_USER(from_id));
+               if (!P || !(P->flags & FLAG_CREATED)) {
+                       tgl_do_get_difference(TLS, 0, 0, 0);
+               } else {
+                       bl_do_set_pts(TLS, pts);
+                       bl_do_set_date(TLS, date);
+               }
+               //bl_do_msg_seq_update(id);
+       } else {
+               fetch_int(); // id
+               fetch_int(); // from_id
+               int l = prefetch_strlen();
+               fetch_str(l); // text
+
+               tglu_fetch_pts(TLS);
+               fetch_int();
+               //tglu_fetch_seq();
+               int seq = fetch_int();
+               assert(seq == TLS->seq + 1);
+               //bl_do_msg_seq_update(id);
+       }
+}
+
+void tglf_fetch_message_short_chat(struct tgl_state *TLS, struct tgl_message *M)
+{
+       int new = !(M->flags & FLAG_CREATED);
+
+       if (new) {
+               int id = fetch_int();
+               int from_id = fetch_int();
+               int to_id = fetch_int();
+               int l = prefetch_strlen();
+               char *s = fetch_str(l);
+
+               int pts = fetch_int();
+               int date = fetch_int();
+               //tglu_fetch_seq();
+
+               int seq = fetch_int();
+               assert(seq == TLS->seq + 1);
+               bl_do_create_message_text(TLS, id, from_id, TGL_PEER_CHAT, to_id, date, 1, l, s);
+
+               tgl_peer_t *P = tgl_peer_get(TLS, TGL_MK_CHAT(to_id));
+               if (!P || !(P->flags & FLAG_CREATED)) {
+                       tgl_do_get_difference(TLS, 0, 0, 0);
+               } else {
+                       P = tgl_peer_get(TLS, TGL_MK_USER(from_id));
+                       if (!P || !(P->flags & FLAG_CREATED)) {
+                               tgl_do_get_difference(TLS, 0, 0, 0);
+                       } else {
+                               bl_do_set_pts(TLS, pts);
+                               bl_do_set_date(TLS, date);
+                       }
+               }
+               //bl_do_msg_seq_update(id);
+       } else {
+               fetch_int(); // id
+               fetch_int(); // from_id
+               fetch_int(); // to_id
+               int l = prefetch_strlen();
+               fetch_str(l); // text
+
+               tglu_fetch_pts(TLS);
+               fetch_int();
+               //tglu_fetch_seq();
+               int seq = fetch_int();
+               assert(seq == TLS->seq + 1);
+               //bl_do_msg_seq_update(id);
+       }
+}
+
+
+void tglf_fetch_message_media(struct tgl_state *TLS, struct tgl_message_media *M)
+{
+       memset(M, 0, sizeof(*M));
+       //M->type = fetch_int();
+       int x = fetch_int();
+       switch (x) {
+       case CODE_message_media_empty:
+               M->type = tgl_message_media_none;
+               break;
+       case CODE_message_media_photo:
+               M->type = tgl_message_media_photo;
+               tglf_fetch_photo(TLS, &M->photo);
+               break;
+       case CODE_message_media_video:
+               M->type = tgl_message_media_document;
+               tglf_fetch_video(TLS, &M->document);
+               break;
+       case CODE_message_media_audio:
+               M->type = tgl_message_media_document;
+               tglf_fetch_audio(TLS, &M->document);
+               break;
+       case CODE_message_media_document:
+               M->type = tgl_message_media_document;
+               tglf_fetch_document(TLS, &M->document);
+               break;
+       case CODE_message_media_geo:
+               M->type = tgl_message_media_geo;
+               tglf_fetch_geo(TLS, &M->geo);
+               break;
+       case CODE_message_media_contact:
+               M->type = tgl_message_media_contact;
+               M->phone = fetch_str_dup();
+               M->first_name = fetch_str_dup();
+               M->last_name = fetch_str_dup();
+               M->user_id = fetch_int();
+               break;
+       case CODE_message_media_unsupported:
+               M->type = tgl_message_media_unsupported;
+               M->data_size = prefetch_strlen();
+               M->data = talloc(M->data_size);
+               memcpy(M->data, fetch_str(M->data_size), M->data_size);
+               break;
+       default:
+               vlogprintf(E_ERROR, "type = 0x%08x\n", M->type);
+               assert(0);
+       }
+}
+
+void tglf_fetch_message_media_encrypted(struct tgl_state *TLS, struct tgl_message_media *M)
+{
+       memset(M, 0, sizeof(*M));
+       unsigned x = fetch_int();
+       int l;
+       switch (x) {
+       case CODE_decrypted_message_media_empty:
+               M->type = tgl_message_media_none;
+               //M->type = CODE_message_media_empty;
+               break;
+       case CODE_decrypted_message_media_photo:
+               M->type = tgl_message_media_photo_encr;
+               //M->type = x;
+               l = prefetch_strlen();
+               fetch_str(l); // thumb
+               fetch_int(); // thumb_w
+               fetch_int(); // thumb_h
+               M->encr_photo.w = fetch_int();
+               M->encr_photo.h = fetch_int();
+               M->encr_photo.size = fetch_int();
+
+               l = prefetch_strlen ();
+               assert(l > 0);
+               M->encr_photo.key = talloc(32);
+               memset(M->encr_photo.key, 0, 32);
+               if (l <= 32) {
+                       memcpy(M->encr_photo.key +(32 - l), fetch_str(l), l);
+               } else {
+                       memcpy(M->encr_photo.key, fetch_str(l) +(l - 32), 32);
+               }
+               M->encr_photo.iv = talloc(32);
+               l = prefetch_strlen ();
+               assert(l > 0);
+               memset(M->encr_photo.iv, 0, 32);
+               if (l <= 32) {
+                       memcpy(M->encr_photo.iv +(32 - l), fetch_str(l), l);
+               } else {
+                       memcpy(M->encr_photo.iv, fetch_str(l) +(l - 32), 32);
+               }
+               break;
+       case CODE_decrypted_message_media_video:
+       case CODE_decrypted_message_media_video_l12:
+               //M->type = CODE_decrypted_message_media_video;
+               M->type = tgl_message_media_document_encr;
+               M->encr_document.flags = FLAG_DOCUMENT_VIDEO;
+
+               l = prefetch_strlen();
+               fetch_str(l); // thumb
+               fetch_int(); // thumb_w
+               fetch_int(); // thumb_h
+               M->encr_document.duration = fetch_int();
+               if (x == CODE_decrypted_message_media_video) {
+                       M->encr_document.mime_type = fetch_str_dup();
+               }
+               M->encr_document.w = fetch_int();
+               M->encr_document.h = fetch_int();
+               M->encr_document.size = fetch_int();
+
+               l = prefetch_strlen ();
+               assert(l > 0);
+               M->encr_document.key = talloc0(32);
+               if (l <= 32) {
+                       memcpy(M->encr_document.key +(32 - l), fetch_str(l), l);
+               } else {
+                       memcpy(M->encr_document.key, fetch_str(l) +(l - 32), 32);
+               }
+               M->encr_document.iv = talloc(32);
+               l = prefetch_strlen ();
+               assert(l > 0);
+               memset(M->encr_document.iv, 0, 32);
+               if (l <= 32) {
+                       memcpy(M->encr_document.iv +(32 - l), fetch_str(l), l);
+               } else {
+                       memcpy(M->encr_document.iv, fetch_str(l) +(l - 32), 32);
+               }
+               break;
+       case CODE_decrypted_message_media_audio:
+       case CODE_decrypted_message_media_audio_l12:
+               M->type = tgl_message_media_document_encr;
+               M->encr_document.flags = FLAG_DOCUMENT_AUDIO;
+
+               M->encr_document.duration = fetch_int();
+               if (x == CODE_decrypted_message_media_audio) {
+                       M->encr_document.mime_type = fetch_str_dup();
+               }
+               M->encr_document.size = fetch_int();
+
+               l = prefetch_strlen ();
+               assert(l > 0);
+               M->encr_document.key = talloc0(32);
+               if (l <= 32) {
+                       memcpy(M->encr_document.key +(32 - l), fetch_str(l), l);
+               } else {
+                       memcpy(M->encr_document.key, fetch_str(l) +(l - 32), 32);
+               }
+               M->encr_document.iv = talloc0(32);
+               l = prefetch_strlen ();
+               assert(l > 0);
+               if (l <= 32) {
+                       memcpy(M->encr_document.iv +(32 - l), fetch_str(l), l);
+               } else {
+                       memcpy(M->encr_document.iv, fetch_str(l) +(l - 32), 32);
+               }
+               break;
+       case CODE_decrypted_message_media_document:
+               M->type = tgl_message_media_document_encr;
+               M->encr_document.flags = 0;
+               l = prefetch_strlen();
+               fetch_str(l); // thumb
+               fetch_int(); // thumb_w
+               fetch_int(); // thumb_h
+               M->encr_document.caption = fetch_str_dup();
+               M->encr_document.mime_type = fetch_str_dup();
+               M->encr_document.size = fetch_int();
+
+               l = prefetch_strlen ();
+               assert(l > 0);
+               M->encr_document.key = talloc0(32);
+               if (l <= 32) {
+                       memcpy(M->encr_document.key +(32 - l), fetch_str(l), l);
+               } else {
+                       memcpy(M->encr_document.key, fetch_str(l) +(l - 32), 32);
+               }
+               M->encr_document.iv = talloc0(32);
+               l = prefetch_strlen ();
+               assert(l > 0);
+               if (l <= 32) {
+                       memcpy(M->encr_document.iv +(32 - l), fetch_str(l), l);
+               } else {
+                       memcpy(M->encr_document.iv, fetch_str(l) +(l - 32), 32);
+               }
+               break;
+       case CODE_decrypted_message_media_geo_point:
+               M->type = tgl_message_media_geo;
+               M->geo.latitude = fetch_double();
+               M->geo.longitude = fetch_double();
+               break;
+       case CODE_decrypted_message_media_contact:
+               M->type = tgl_message_media_contact;
+               M->phone = fetch_str_dup();
+               M->first_name = fetch_str_dup();
+               M->last_name = fetch_str_dup();
+               M->user_id = fetch_int();
+               break;
+       default:
+               vlogprintf(E_ERROR, "type = 0x%08x\n", x);
+               assert(0);
+       }
+}
+
+void tglf_fetch_message_action_encrypted(struct tgl_state *TLS, struct tgl_message_action *M)
+{
+       unsigned x = fetch_int();
+       switch (x) {
+       case CODE_decrypted_message_action_set_message_t_t_l:
+               M->type = tgl_message_action_set_message_ttl;
+               M->ttl = fetch_int();
+               break;
+       case CODE_decrypted_message_action_read_messages:
+               M->type = tgl_message_action_read_messages;
+               {
+                       assert(fetch_int() == CODE_vector);
+                       int n = fetch_int();
+                       M->read_cnt = n;
+                       while(n -- > 0) {
+                               long long id = fetch_long();
+                               struct tgl_message *N = tgl_message_get(TLS, id);
+                               if (N) {
+                                       N->unread = 0;
+                               }
+                       }
+               }
+               break;
+       case CODE_decrypted_message_action_delete_messages:
+               M->type = tgl_message_action_delete_messages;
+               {
+                       assert(fetch_int() == CODE_vector);
+                       int n = fetch_int();
+                       M->delete_cnt = n;
+                       while(n -- > 0) {
+                               fetch_long();
+                       }
+               }
+               break;
+       case CODE_decrypted_message_action_screenshot_messages:
+               M->type = tgl_message_action_screenshot_messages;
+               {
+                       assert(fetch_int() == CODE_vector);
+                       int n = fetch_int();
+                       M->screenshot_cnt = n;
+                       while(n -- > 0) {
+                               fetch_long();
+                       }
+               }
+               break;
+       case CODE_decrypted_message_action_notify_layer:
+               M->type = tgl_message_action_notify_layer;
+               M->layer = fetch_int();
+               break;
+       case CODE_decrypted_message_action_flush_history:
+               M->type = tgl_message_action_flush_history;
+               break;
+       case CODE_decrypted_message_action_typing:
+               M->type = tgl_message_action_typing;
+               M->typing = tglf_fetch_typing();
+               break;
+       case CODE_decrypted_message_action_resend:
+               M->type = tgl_message_action_resend;
+               M->start_seq_no = fetch_int();
+               M->end_seq_no = fetch_int();
+               break;
+       case CODE_decrypted_message_action_noop:
+               M->type = tgl_message_action_noop;
+               break;
+       case CODE_decrypted_message_action_request_key:
+               M->type = tgl_message_action_request_key;
+               M->exchange_id = fetch_long();
+               M->g_a = talloc(256);
+               fetch256(M->g_a);
+               break;
+       case CODE_decrypted_message_action_accept_key:
+               M->type = tgl_message_action_accept_key;
+               M->exchange_id = fetch_long();
+               M->g_a = talloc(256);
+               fetch256(M->g_a);
+               M->key_fingerprint = fetch_long();
+               break;
+       case CODE_decrypted_message_action_commit_key:
+               M->type = tgl_message_action_commit_key;
+               M->exchange_id = fetch_long();
+               M->key_fingerprint = fetch_long();
+               break;
+       case CODE_decrypted_message_action_abort_key:
+               M->type = tgl_message_action_abort_key;
+               M->exchange_id = fetch_long();
+               break;
+       default:
+               vlogprintf(E_ERROR, "x = 0x%08x\n", x);
+               assert(0);
+       }
+}
+
+tgl_peer_id_t tglf_fetch_peer_id(struct tgl_state *TLS)
+{
+       unsigned x =fetch_int();
+       if (x == CODE_peer_user) {
+               return TGL_MK_USER(fetch_int());
+       } else {
+               assert(CODE_peer_chat);
+               return TGL_MK_CHAT(fetch_int());
+       }
+}
+
+void tglf_fetch_message(struct tgl_state *TLS, struct tgl_message *M)
+{
+       unsigned x = fetch_int();
+       assert(x == CODE_message_empty || x == CODE_message || x == CODE_message_forwarded || x == CODE_message_service);
+       int flags = 0;
+       if (x != CODE_message_empty) {
+               flags = fetch_int();
+       }
+       int id = fetch_int();
+       assert(M->id == id);
+       if (x == CODE_message_empty) {
+               return;
+       }
+       int fwd_from_id = 0;
+       int fwd_date = 0;
+
+       if (x == CODE_message_forwarded) {
+               fwd_from_id = fetch_int();
+               fwd_date = fetch_int();
+       }
+       int from_id = fetch_int();
+       tgl_peer_id_t to_id = tglf_fetch_peer_id(TLS);
+
+       //fetch_bool(); // out.
+
+       //int unread = fetch_bool();
+       int date = fetch_int();
+
+       int unread =(flags & 1) != 0;
+       int new = !(M->flags & FLAG_CREATED);
+
+       if (x == CODE_message_service) {
+               int *start = in_ptr;
+
+               assert(skip_type_any(TYPE_TO_PARAM(message_action)) >= 0);
+
+               if (new) {
+                       if (fwd_from_id) {
+                               bl_do_create_message_service_fwd(TLS, id, from_id, tgl_get_peer_type(to_id), tgl_get_peer_id(to_id), date, fwd_from_id, fwd_date, unread, start,(in_ptr - start));
+                       } else {
+                               bl_do_create_message_service(TLS, id, from_id, tgl_get_peer_type(to_id), tgl_get_peer_id(to_id), date, unread, start,(in_ptr - start));
+                       }
+               }
+       } else {
+               int l = prefetch_strlen();
+               char *s = fetch_str(l);
+               int *start = in_ptr;
+
+               assert(skip_type_any(TYPE_TO_PARAM(message_media)) >= 0);
+
+               if (new) {
+                       if (fwd_from_id) {
+                               bl_do_create_message_media_fwd(TLS, id, from_id, tgl_get_peer_type(to_id), tgl_get_peer_id(to_id), date, fwd_from_id, fwd_date, unread, l, s, start, in_ptr - start);
+                       } else {
+                               bl_do_create_message_media(TLS, id, from_id, tgl_get_peer_type(to_id), tgl_get_peer_id(to_id), date, unread, l, s, start, in_ptr - start);
+                       }
+               }
+       }
+       bl_do_set_unread(TLS, M, unread);
+}
+
+void tglf_tglf_fetch_geo_message(struct tgl_state *TLS, struct tgl_message *M)
+{
+       memset(M, 0, sizeof(*M));
+       unsigned x = fetch_int();
+       assert(x == CODE_geo_chat_message_empty || x == CODE_geo_chat_message || x == CODE_geo_chat_message_service);
+       M->to_id = TGL_MK_GEO_CHAT(fetch_int());
+       M->id = fetch_int();
+       if (x == CODE_geo_chat_message_empty) {
+               M->flags |= 1;
+               return;
+       }
+       M->from_id = TGL_MK_USER(fetch_int());
+       M->date = fetch_int();
+       if (x == CODE_geo_chat_message_service) {
+               M->service = 1;
+               tglf_fetch_message_action(TLS, &M->action);
+       } else {
+               M->message = fetch_str_dup();
+               M->message_len = strlen(M->message);
+               tglf_fetch_message_media(TLS, &M->media);
+       }
+}
+
+static int *decr_ptr;
+static int *decr_end;
+
+static int decrypt_encrypted_message(struct tgl_secret_chat *E)
+{
+       int *msg_key = decr_ptr;
+       decr_ptr += 4;
+       assert(decr_ptr < decr_end);
+       static unsigned char sha1a_buffer[20];
+       static unsigned char sha1b_buffer[20];
+       static unsigned char sha1c_buffer[20];
+       static unsigned char sha1d_buffer[20];
+
+       static unsigned char buf[64];
+
+       int *e_key = E->exchange_state != tgl_sce_committed ? E->key : E->exchange_key;
+
+       memcpy(buf, msg_key, 16);
+       memcpy(buf + 16, e_key, 32);
+       sha1(buf, 48, sha1a_buffer);
+
+       memcpy(buf, e_key + 8, 16);
+       memcpy(buf + 16, msg_key, 16);
+       memcpy(buf + 32, e_key + 12, 16);
+       sha1(buf, 48, sha1b_buffer);
+
+       memcpy(buf, e_key + 16, 32);
+       memcpy(buf + 32, msg_key, 16);
+       sha1(buf, 48, sha1c_buffer);
+
+       memcpy(buf, msg_key, 16);
+       memcpy(buf + 16, e_key + 24, 32);
+       sha1(buf, 48, sha1d_buffer);
+
+       static unsigned char key[32];
+       memcpy(key, sha1a_buffer + 0, 8);
+       memcpy(key + 8, sha1b_buffer + 8, 12);
+       memcpy(key + 20, sha1c_buffer + 4, 12);
+
+       static unsigned char iv[32];
+       memcpy(iv, sha1a_buffer + 8, 12);
+       memcpy(iv + 12, sha1b_buffer + 0, 8);
+       memcpy(iv + 20, sha1c_buffer + 16, 4);
+       memcpy(iv + 24, sha1d_buffer + 0, 8);
+
+       AES_KEY aes_key;
+       AES_set_decrypt_key(key, 256, &aes_key);
+       AES_ige_encrypt((void *)decr_ptr,(void *)decr_ptr, 4 *(decr_end - decr_ptr), &aes_key, iv, 0);
+       memset(&aes_key, 0, sizeof(aes_key));
+
+       int x = *(decr_ptr);
+       if (x < 0 ||(x & 3)) {
+               return -1;
+       }
+       assert(x >= 0 && !(x & 3));
+       sha1((void *)decr_ptr, 4 + x, sha1a_buffer);
+
+       if (memcmp(sha1a_buffer + 4, msg_key, 16)) {
+               return -1;
+       }
+       return 0;
+}
+
+void tglf_fetch_encrypted_message(struct tgl_state *TLS, struct tgl_message *M)
+{
+       unsigned x = fetch_int();
+       assert(x == CODE_encrypted_message || x == CODE_encrypted_message_service);
+       unsigned sx = x;
+       int new = !(M->flags & FLAG_CREATED);
+       long long id = fetch_long();
+       int to_id = fetch_int();
+       tgl_peer_id_t chat = TGL_MK_ENCR_CHAT(to_id);
+       int date = fetch_int();
+
+       tgl_peer_t *P = tgl_peer_get(TLS, chat);
+       if (!P) {
+               vlogprintf(E_WARNING, "Encrypted message to unknown chat. Dropping\n");
+               M->flags |= FLAG_MESSAGE_EMPTY;
+       }
+
+       int len = prefetch_strlen();
+       assert((len & 15) == 8);
+       decr_ptr =(void *)fetch_str(len);
+       decr_end = decr_ptr +(len / 4);
+       int ok = 0;
+       if (P) {
+               if (P->encr_chat.exchange_state == tgl_sce_committed && P->encr_chat.key_fingerprint == *(long long *)decr_ptr) {
+                       tgl_do_confirm_exchange(TLS,(void *)P, 0);
+                       assert(P->encr_chat.exchange_state == tgl_sce_none);
+               }
+               long long key_fingerprint = P->encr_chat.exchange_state != tgl_sce_committed ? P->encr_chat.key_fingerprint : P->encr_chat.exchange_key_fingerprint;
+               if (*(long long *)decr_ptr != key_fingerprint) {
+                       vlogprintf(E_WARNING, "Encrypted message with bad fingerprint to chat %s\n", P->print_name);
+                       P = 0;
+               }
+               decr_ptr += 2;
+       }
+       int l = 0;
+       char *s = 0;
+       int *start = 0;
+       int *end = 0;
+       x = 0;
+       int out_seq_no = -1;
+       int in_seq_no = -1;
+       int drop = 0;
+       if (P && decrypt_encrypted_message(&P->encr_chat) >= 0 && new) {
+               ok = 1;
+               int *save_in_ptr = in_ptr;
+               int *save_in_end = in_end;
+               in_ptr = decr_ptr;
+               int ll = fetch_int();
+               in_end = in_ptr + ll;
+               x = fetch_int();
+               if (x == CODE_decrypted_message_layer) {
+                       ll = prefetch_strlen();
+                       fetch_str(ll); // random_bytes
+
+                       int layer = fetch_int();
+                       assert(layer >= 0);
+                       if (P &&((P->flags) & FLAG_CREATED)) {
+                               bl_do_encr_chat_set_layer(TLS,(void *)P, layer);
+                       }
+                       //x = fetch_int();
+                       //assert(x == CODE_decrypted_message || x == CODE_decrypted_message_service);
+
+
+                       out_seq_no = fetch_int();
+                       in_seq_no = fetch_int();
+                       if (in_seq_no / 2 != P->encr_chat.in_seq_no) {
+                               vlogprintf(E_WARNING, "Hole in seq in secret chat. in_seq_no = %d, expect_seq_no = %d\n", in_seq_no / 2, P->encr_chat.in_seq_no);
+                               drop = 1;
+                       }
+                       if ((in_seq_no & 1)  != 1 -(P->encr_chat.admin_id == TLS->our_id) ||
+                                       (out_seq_no & 1) !=(P->encr_chat.admin_id == TLS->our_id)) {
+                               vlogprintf(E_WARNING, "Bad msg admin\n");
+                               drop = 1;
+                       }
+                       if (out_seq_no / 2 > P->encr_chat.out_seq_no) {
+                               vlogprintf(E_WARNING, "In seq no is bigger than our's out seq no(out_seq_no = %d, our_out_seq_no = %d). Drop\n", out_seq_no / 2, P->encr_chat.out_seq_no);
+                               drop = 1;
+                       }
+                       if (out_seq_no / 2 < P->encr_chat.last_in_seq_no) {
+                               vlogprintf(E_WARNING, "Clients in_seq_no decreased(out_seq_no = %d, last_out_seq_no = %d). Drop\n", out_seq_no / 2, P->encr_chat.last_in_seq_no);
+                               drop = 1;
+                       }
+                       //vlogprintf(E_WARNING, "in = %d, out = %d\n", in_seq_no, out_seq_no);
+                       //P->encr_chat.in_seq_no = in_seq_no / 2;
+                       x = fetch_int();
+                       vlogprintf(E_DEBUG - 2, "layer = %d, in = %d, out = %d\n", layer, in_seq_no, out_seq_no);
+               }
+               if (!(x == CODE_decrypted_message || x == CODE_decrypted_message_service || x == CODE_decrypted_message_l16 || x == CODE_decrypted_message_service_l16)) {
+                       vlogprintf(E_ERROR, "Incorrect message: x = 0x%08x\n", x);
+                       drop = 1;
+               }
+               //assert(id == fetch_long());
+               long long new_id = fetch_long();
+               if (!drop && P && P->encr_chat.layer >= 17) {
+                       if (new_id != id) {
+                               vlogprintf(E_ERROR, "Incorrect message: id = %lld, new_id = %lld\n", id, new_id);
+                               drop = 1;
+                       }
+               }
+               if (!drop) {
+                       if (x == CODE_decrypted_message || x == CODE_decrypted_message_service) {
+                               if (x == CODE_decrypted_message) {
+                                       fetch_int(); // ttl
+                               }
+                       } else {
+                               ll = prefetch_strlen();
+                               fetch_str(ll); // random_bytes
+                       }
+                       if (x == CODE_decrypted_message || x == CODE_decrypted_message_l16) {
+                               l = prefetch_strlen();
+                               s = fetch_str(l);
+                               start = in_ptr;
+                               assert(skip_type_any(TYPE_TO_PARAM(decrypted_message_media)) >= 0);
+                               end = in_ptr;
+                       } else {
+                               start = in_ptr;
+                               if (skip_type_any(TYPE_TO_PARAM(decrypted_message_action)) < 0) {
+                                       vlogprintf(E_ERROR, "Can not decrypt: Skipped %ld int out of %ld. Magic = 0x%08x\n",(long)(in_ptr - start),(long)(in_end - start), *start);
+                                       drop = 1;
+                               }
+                               end = in_ptr;
+                       }
+               }
+               in_ptr = save_in_ptr;
+               in_end = save_in_end;
+       }
+       if (sx == CODE_encrypted_message) {
+               if (ok) {
+                       int *start_file = in_ptr;
+                       assert(skip_type_any(TYPE_TO_PARAM(encrypted_file)) >= 0);
+                       if (x == CODE_decrypted_message || x == CODE_decrypted_message_l16) {
+                               if (!drop) {
+                                       bl_do_create_message_media_encr(TLS, id, P->encr_chat.user_id, TGL_PEER_ENCR_CHAT, to_id, date, l, s, start, end - start, start_file, in_ptr - start_file);
+                               }
+                       } else if (x == CODE_decrypted_message_service || x == CODE_decrypted_message_service_l16) {
+                               if (!drop) {
+                                       bl_do_create_message_service_encr(TLS, id, P->encr_chat.user_id, TGL_PEER_ENCR_CHAT, to_id, date, start, end - start);
+                               }
+                       }
+               } else {
+                       if (!drop) {
+                               assert(skip_type_any(TYPE_TO_PARAM(encrypted_file)) >= 0);
+                               M->media.type = CODE_message_media_empty;
+                       }
+               }
+       } else {
+               if (ok &&(x == CODE_decrypted_message_service || x == CODE_decrypted_message_service_l16)) {
+                       if (!drop) {
+                               bl_do_create_message_service_encr(TLS, id, P->encr_chat.user_id, TGL_PEER_ENCR_CHAT, to_id, date, start, end - start);
+                       }
+               }
+       }
+       if (!drop) {
+               if (in_seq_no >= 0 && out_seq_no >= 0) {
+                       bl_do_encr_chat_update_seq(TLS,(void *)P, in_seq_no / 2 + 1, out_seq_no / 2);
+                       assert(P->encr_chat.in_seq_no == in_seq_no / 2 + 1);
+               }
+       }
+}
+
+void tglf_fetch_encrypted_message_file(struct tgl_state *TLS, struct tgl_message_media *M)
+{
+       unsigned x = fetch_int();
+       assert(x == CODE_encrypted_file || x == CODE_encrypted_file_empty);
+       if (x == CODE_encrypted_file_empty) {
+               assert(M->type != tgl_message_media_photo_encr && M->type != tgl_message_media_document_encr);
+       } else {
+               assert(M->type == tgl_message_media_document_encr || M->type == tgl_message_media_photo_encr);
+
+               M->encr_photo.id = fetch_long();
+               M->encr_photo.access_hash = fetch_long();
+               if (!M->encr_photo.size) {
+                       M->encr_photo.size = fetch_int();
+               } else {
+                       fetch_int();
+               }
+               M->encr_photo.dc_id = fetch_int();
+               M->encr_photo.key_fingerprint = fetch_int();
+       }
+}
+
+static int id_cmp(struct tgl_message *M1, struct tgl_message *M2)
+{
+       if (M1->id < M2->id) { return -1; }
+       else if (M1->id > M2->id) { return 1; }
+       else { return 0; }
+}
+
+static void increase_peer_size(struct tgl_state *TLS)
+{
+       if (TLS->peer_num == TLS->peer_size) {
+               int new_size = TLS->peer_size ? 2 * TLS->peer_size : 10;
+               int old_size = TLS->peer_size;
+               if (old_size) {
+                       TLS->Peers = trealloc(TLS->Peers, old_size * sizeof(void *), new_size * sizeof(void *));
+               } else {
+                       TLS->Peers = talloc(new_size * sizeof(void *));
+               }
+               TLS->peer_size = new_size;
+       }
+}
+
+struct tgl_user *tglf_fetch_alloc_user(struct tgl_state *TLS)
+{
+       int data[2];
+       prefetch_data(data, 8);
+       tgl_peer_t *U = tgl_peer_get(TLS, TGL_MK_USER(data[1]));
+       if (!U) {
+               TLS->users_allocated ++;
+               U = talloc0(sizeof(*U));
+               U->id = TGL_MK_USER(data[1]);
+               TLS->peer_tree = tree_insert_peer(TLS->peer_tree, U, lrand48());
+               increase_peer_size(TLS);
+               TLS->Peers[TLS->peer_num ++] = U;
+       }
+       tglf_fetch_user(TLS, &U->user);
+       return &U->user;
+}
+
+struct tgl_secret_chat *tglf_fetch_alloc_encrypted_chat(struct tgl_state *TLS)
+{
+       int data[2];
+       prefetch_data(data, 8);
+       tgl_peer_t *U = tgl_peer_get(TLS, TGL_MK_ENCR_CHAT(data[1]));
+       if (!U) {
+               U = talloc0(sizeof(*U));
+               U->id = TGL_MK_ENCR_CHAT(data[1]);
+               TLS->encr_chats_allocated ++;
+               TLS->peer_tree = tree_insert_peer(TLS->peer_tree, U, lrand48());
+               increase_peer_size(TLS);
+               TLS->Peers[TLS->peer_num ++] = U;
+       }
+       tglf_fetch_encrypted_chat(TLS, &U->encr_chat);
+       return &U->encr_chat;
+}
+
+struct tgl_user *tglf_fetch_alloc_user_full(struct tgl_state *TLS)
+{
+       int data[3];
+       prefetch_data(data, 12);
+       tgl_peer_t *U = tgl_peer_get(TLS, TGL_MK_USER(data[2]));
+       if (U) {
+               tglf_fetch_user_full(TLS, &U->user);
+               return &U->user;
+       } else {
+               TLS->users_allocated ++;
+               U = talloc0(sizeof(*U));
+               U->id = TGL_MK_USER(data[2]);
+               TLS->peer_tree = tree_insert_peer(TLS->peer_tree, U, lrand48());
+               tglf_fetch_user_full(TLS, &U->user);
+               increase_peer_size(TLS);
+               TLS->Peers[TLS->peer_num ++] = U;
+               return &U->user;
+       }
+}
+
+struct tgl_message *tglf_fetch_alloc_message(struct tgl_state *TLS)
+{
+       int data[3];
+       prefetch_data(data, 12);
+       struct tgl_message *M = tgl_message_get(TLS, data[0] !=(int)CODE_message_empty ? data[2] : data[1]);
+
+       if (!M) {
+               M = tglm_message_alloc(TLS, data[0] !=(int)CODE_message_empty ? data[2] : data[1]);
+       }
+       tglf_fetch_message(TLS, M);
+       return M;
+}
+
+struct tgl_message *tglf_fetch_alloc_geo_message(struct tgl_state *TLS)
+{
+       struct tgl_message *M = talloc(sizeof(*M));
+       tglf_tglf_fetch_geo_message(TLS, M);
+       struct tgl_message *M1 = tree_lookup_message(TLS->message_tree, M);
+       TLS->messages_allocated ++;
+       if (M1) {
+               tglm_message_del_use(TLS, M1);
+               tglm_message_del_peer(TLS, M1);
+               tgls_clear_message(TLS, M1);
+               memcpy(M1, M, sizeof(*M));
+               tfree(M, sizeof(*M));
+               tglm_message_add_use(TLS, M1);
+               tglm_message_add_peer(TLS, M1);
+               TLS->messages_allocated --;
+               return M1;
+       } else {
+               tglm_message_add_use(TLS, M);
+               tglm_message_add_peer(TLS, M);
+               TLS->message_tree = tree_insert_message(TLS->message_tree, M, lrand48());
+               return M;
+       }
+}
+
+struct tgl_message *tglf_fetch_alloc_encrypted_message(struct tgl_state *TLS)
+{
+       int data[3];
+       prefetch_data(data, 12);
+       struct tgl_message *M = tgl_message_get(TLS, *(long long *)(data + 1));
+
+       if (!M) {
+               M = talloc0(sizeof(*M));
+               M->id = *(long long *)(data + 1);
+               tglm_message_insert_tree(TLS, M);
+               TLS->messages_allocated ++;
+               assert(tgl_message_get(TLS, M->id) == M);
+       }
+       tglf_fetch_encrypted_message(TLS, M);
+
+       if (M->flags & FLAG_CREATED) {
+               tgl_peer_t *_E = tgl_peer_get(TLS, M->to_id);
+               assert(_E);
+               struct tgl_secret_chat *E = &_E->encr_chat;
+               if (M->action.type == tgl_message_action_request_key) {
+                       if (E->exchange_state == tgl_sce_none ||(E->exchange_state == tgl_sce_requested && E->exchange_id > M->action.exchange_id )) {
+                               tgl_do_accept_exchange(TLS, E, M->action.exchange_id, M->action.g_a);
+                       } else {
+                               vlogprintf(E_WARNING, "Exchange: Incorrect state(received request, state = %d)\n", E->exchange_state);
+                       }
+               }
+               if (M->action.type == tgl_message_action_accept_key) {
+                       if (E->exchange_state == tgl_sce_requested && E->exchange_id == M->action.exchange_id) {
+                               tgl_do_commit_exchange(TLS, E, M->action.g_a);
+                       } else {
+                               vlogprintf(E_WARNING, "Exchange: Incorrect state(received accept, state = %d)\n", E->exchange_state);
+                       }
+               }
+               if (M->action.type == tgl_message_action_commit_key) {
+                       if (E->exchange_state == tgl_sce_accepted && E->exchange_id == M->action.exchange_id) {
+                               tgl_do_confirm_exchange(TLS, E, 1);
+                       } else {
+                               vlogprintf(E_WARNING, "Exchange: Incorrect state(received commit, state = %d)\n", E->exchange_state);
+                       }
+               }
+               if (M->action.type == tgl_message_action_abort_key) {
+                       if (E->exchange_state != tgl_sce_none && E->exchange_id == M->action.exchange_id) {
+                               tgl_do_abort_exchange(TLS, E);
+                       } else {
+                               vlogprintf(E_WARNING, "Exchange: Incorrect state(received abort, state = %d)\n", E->exchange_state);
+                       }
+               }
+               if (M->action.type == tgl_message_action_notify_layer) {
+                       bl_do_encr_chat_set_layer(TLS, E, M->action.layer);
+               }
+               if (M->action.type == tgl_message_action_set_message_ttl) {
+                       bl_do_encr_chat_set_ttl(TLS, E, M->action.ttl);
+               }
+       }
+       return M;
+}
+
+struct tgl_message *tglf_fetch_alloc_message_short(struct tgl_state *TLS)
+{
+       int data[1];
+       prefetch_data(data, 4);
+       struct tgl_message *M = tgl_message_get(TLS, data[0]);
+
+       if (!M) {
+               M = talloc0(sizeof(*M));
+               M->id = data[0];
+               tglm_message_insert_tree(TLS, M);
+               TLS->messages_allocated ++;
+       }
+       tglf_fetch_message_short(TLS, M);
+       return M;
+}
+
+struct tgl_message *tglf_fetch_alloc_message_short_chat(struct tgl_state *TLS)
+{
+       int data[1];
+       prefetch_data(data, 4);
+       struct tgl_message *M = tgl_message_get(TLS, data[0]);
+
+       if (!M) {
+               M = talloc0(sizeof(*M));
+               M->id = data[0];
+               tglm_message_insert_tree(TLS, M);
+               TLS->messages_allocated ++;
+       }
+       tglf_fetch_message_short_chat(TLS, M);
+       return M;
+}
+
+struct tgl_chat *tglf_fetch_alloc_chat(struct tgl_state *TLS)
+{
+       int data[2];
+       prefetch_data(data, 8);
+       tgl_peer_t *U = tgl_peer_get(TLS, TGL_MK_CHAT(data[1]));
+       if (!U) {
+               TLS->chats_allocated ++;
+               U = talloc0(sizeof(*U));
+               U->id = TGL_MK_CHAT(data[1]);
+               TLS->peer_tree = tree_insert_peer(TLS->peer_tree, U, lrand48());
+               increase_peer_size(TLS);
+               TLS->Peers[TLS->peer_num ++] = U;
+       }
+       tglf_fetch_chat(TLS, &U->chat);
+       return &U->chat;
+}
+
+struct tgl_chat *tglf_fetch_alloc_chat_full(struct tgl_state *TLS)
+{
+       int data[3];
+       prefetch_data(data, 12);
+       tgl_peer_t *U = tgl_peer_get(TLS, TGL_MK_CHAT(data[2]));
+       if (U) {
+               tglf_fetch_chat_full(TLS, &U->chat);
+               return &U->chat;
+       } else {
+               TLS->chats_allocated ++;
+               U = talloc0(sizeof(*U));
+               U->id = TGL_MK_CHAT(data[2]);
+               TLS->peer_tree = tree_insert_peer(TLS->peer_tree, U, lrand48());
+               tglf_fetch_chat_full(TLS, &U->chat);
+               increase_peer_size(TLS);
+               TLS->Peers[TLS->peer_num ++] = U;
+               return &U->chat;
+       }
+}
+
+void tglp_insert_encrypted_chat(struct tgl_state *TLS, tgl_peer_t *P)
+{
+       TLS->encr_chats_allocated ++;
+       TLS->peer_tree = tree_insert_peer(TLS->peer_tree, P, lrand48());
+       increase_peer_size(TLS);
+       TLS->Peers[TLS->peer_num ++] = P;
+}
+
+void tglp_insert_user(struct tgl_state *TLS, tgl_peer_t *P)
+{
+       TLS->users_allocated ++;
+       TLS->peer_tree = tree_insert_peer(TLS->peer_tree, P, lrand48());
+       increase_peer_size(TLS);
+       TLS->Peers[TLS->peer_num ++] = P;
+}
+
+void tglp_insert_chat(struct tgl_state *TLS, tgl_peer_t *P)
+{
+       TLS->chats_allocated ++;
+       TLS->peer_tree = tree_insert_peer(TLS->peer_tree, P, lrand48());
+       increase_peer_size(TLS);
+       TLS->Peers[TLS->peer_num ++] = P;
+}
+
+void tgl_insert_empty_user(struct tgl_state *TLS, int uid)
+{
+       tgl_peer_id_t id = TGL_MK_USER(uid);
+       if (tgl_peer_get(TLS, id)) { return; }
+       tgl_peer_t *P = talloc0(sizeof(*P));
+       P->id = id;
+       tglp_insert_user(TLS, P);
+}
+
+void tgl_insert_empty_chat(struct tgl_state *TLS, int cid)
+{
+       tgl_peer_id_t id = TGL_MK_CHAT(cid);
+       if (tgl_peer_get(TLS, id)) { return; }
+       tgl_peer_t *P = talloc0(sizeof(*P));
+       P->id = id;
+       tglp_insert_chat(TLS, P);
+}
+
+void tgls_free_photo_size(struct tgl_state *TLS, struct tgl_photo_size *S)
+{
+       tfree_str(S->type);
+       if (S->data) {
+               tfree(S->data, S->size);
+       }
+}
+
+void tgls_free_photo(struct tgl_state *TLS, struct tgl_photo *P)
+{
+       if (P->caption) { tfree_str(P->caption); }
+       if (P->sizes) {
+               int i;
+               for (i = 0; i < P->sizes_num; i++) {
+                       tgls_free_photo_size(TLS, &P->sizes[i]);
+               }
+               tfree(P->sizes, sizeof(struct tgl_photo_size) * P->sizes_num);
+       }
+}
+
+void tgls_free_document(struct tgl_state *TLS, struct tgl_document *D)
+{
+       if (!D->access_hash) { return; }
+       if (D->mime_type) { tfree_str(D->mime_type);}
+       if (D->caption) {tfree_str(D->caption);}
+       tgls_free_photo_size(TLS, &D->thumb);
+}
+
+void tgls_free_message_media(struct tgl_state *TLS, struct tgl_message_media *M)
+{
+       switch (M->type) {
+       case tgl_message_media_none:
+       case tgl_message_media_geo:
+               return;
+               //case tgl_message_media_audio:
+               //  tgls_free_audio(TLS, &M->audio);
+               //  return;
+       case tgl_message_media_photo:
+               tgls_free_photo(TLS, &M->photo);
+               return;
+               //case tgl_message_media_video:
+               //  tgls_free_video(TLS, &M->video);
+               //  return;
+       case tgl_message_media_contact:
+               tfree_str(M->phone);
+               tfree_str(M->first_name);
+               tfree_str(M->last_name);
+               return;
+       case tgl_message_media_document:
+               tgls_free_document(TLS, &M->document);
+               return;
+       case tgl_message_media_unsupported:
+               tfree(M->data, M->data_size);
+               return;
+       case tgl_message_media_photo_encr:
+               //case tgl_message_media_video_encr:
+               //case tgl_message_media_audio_encr:
+       case tgl_message_media_document_encr:
+               tfree_secure(M->encr_photo.key, 32);
+               tfree_secure(M->encr_photo.iv, 32);
+               return;
+       default:
+               vlogprintf(E_ERROR, "type = 0x%08x\n", M->type);
+               assert(0);
+       }
+}
+
+void tgls_free_message_action(struct tgl_state *TLS, struct tgl_message_action *M)
+{
+       switch (M->type) {
+       case tgl_message_action_none:
+               return;
+       case tgl_message_action_chat_create:
+               tfree_str(M->title);
+               tfree(M->users, M->user_num * 4);
+               return;
+       case tgl_message_action_chat_edit_title:
+               tfree_str(M->new_title);
+               return;
+       case tgl_message_action_chat_edit_photo:
+               tgls_free_photo(TLS, &M->photo);
+               return;
+       case tgl_message_action_chat_delete_photo:
+       case tgl_message_action_chat_add_user:
+       case tgl_message_action_chat_delete_user:
+       case tgl_message_action_geo_chat_create:
+       case tgl_message_action_geo_chat_checkin:
+       case tgl_message_action_set_message_ttl:
+       case tgl_message_action_read_messages:
+       case tgl_message_action_delete_messages:
+       case tgl_message_action_screenshot_messages:
+       case tgl_message_action_flush_history:
+       case tgl_message_action_typing:
+       case tgl_message_action_resend:
+       case tgl_message_action_notify_layer:
+       case tgl_message_action_commit_key:
+       case tgl_message_action_abort_key:
+       case tgl_message_action_noop:
+               return;
+       case tgl_message_action_request_key:
+       case tgl_message_action_accept_key:
+               tfree(M->g_a, 256);
+               return;
+               /*  default:
+    vlogprintf(E_ERROR, "type = 0x%08x\n", M->type);
+    assert(0);*/
+       }
+       vlogprintf(E_ERROR, "type = 0x%08x\n", M->type);
+       assert(0);
+}
+
+void tgls_clear_message(struct tgl_state *TLS, struct tgl_message *M)
+{
+       if (!M->service) {
+               if (M->message) { tfree(M->message, M->message_len + 1); }
+               tgls_free_message_media(TLS, &M->media);
+       } else {
+               tgls_free_message_action(TLS, &M->action);
+       }
+}
+
+void tgls_free_message(struct tgl_state *TLS, struct tgl_message *M)
+{
+       tgls_clear_message(TLS, M);
+       tfree(M, sizeof(*M));
+}
+
+void tgls_free_chat(struct tgl_state *TLS, struct tgl_chat *U)
+{
+       if (U->title) {
+               tfree_str(U->title);
+       }
+       if (U->print_title) {
+               tfree_str(U->print_title);
+       }
+       if (U->user_list) {
+               tfree(U->user_list, U->user_list_size * 12);
+       }
+       tgls_free_photo(TLS, &U->photo);
+       tfree(U, sizeof(*U));
+}
+
+void tgls_free_user(struct tgl_state *TLS, struct tgl_user *U)
+{
+       if (U->first_name) {
+               tfree_str(U->first_name);
+       }
+       if (U->last_name) {
+               tfree_str(U->last_name);
+       }
+       if (U->print_name) {
+               tfree_str(U->print_name);
+       }
+       if (U->phone) {
+               tfree_str(U->phone);
+       }
+       if (U->real_first_name) {
+               tfree_str(U->real_first_name);
+       }
+       if (U->real_last_name) {
+               tfree_str(U->real_last_name);
+       }
+       if (U->status.ev) {
+               tgl_remove_status_expire(TLS, U);
+       }
+       tgls_free_photo(TLS, &U->photo);
+       tfree(U, sizeof(*U));
+}
+
+void tgls_free_encr_chat(struct tgl_state *TLS, struct tgl_secret_chat *U)
+{
+       if (U->print_name) {
+               tfree_str(U->print_name);
+       }
+       if (U->g_key) {
+               tfree(U->g_key, 256);
+       }
+       if (U->nonce) {
+               tfree(U->nonce, 256);
+       }
+       tfree(U, sizeof(*U));
+}
+
+void tgls_free_peer(struct tgl_state *TLS, tgl_peer_t *P)
+{
+       if (tgl_get_peer_type(P->id) == TGL_PEER_USER) {
+               tgls_free_user(TLS,(void *)P);
+       } else if (tgl_get_peer_type(P->id) == TGL_PEER_CHAT) {
+               tgls_free_chat(TLS,(void *)P);
+       } else if (tgl_get_peer_type(P->id) == TGL_PEER_ENCR_CHAT) {
+               tgls_free_encr_chat(TLS,(void *)P);
+       } else {
+               assert(0);
+       }
+}
+
+void tglm_message_del_use(struct tgl_state *TLS, struct tgl_message *M)
+{
+       M->next_use->prev_use = M->prev_use;
+       M->prev_use->next_use = M->next_use;
+}
+
+void tglm_message_add_use(struct tgl_state *TLS, struct tgl_message *M)
+{
+       M->next_use = TLS->message_list.next_use;
+       M->prev_use = &TLS->message_list;
+       M->next_use->prev_use = M;
+       M->prev_use->next_use = M;
+}
+
+void tglm_message_add_peer(struct tgl_state *TLS, struct tgl_message *M)
+{
+       tgl_peer_id_t id;
+       if (!tgl_cmp_peer_id(M->to_id, TGL_MK_USER(TLS->our_id))) {
+               id = M->from_id;
+       } else {
+               id = M->to_id;
+       }
+       tgl_peer_t *P = tgl_peer_get(TLS, id);
+       if (!P) {
+               P = talloc0(sizeof(*P));
+               P->id = id;
+               switch (tgl_get_peer_type(id)) {
+               case TGL_PEER_USER:
+                       TLS->users_allocated ++;
+                       break;
+               case TGL_PEER_CHAT:
+                       TLS->chats_allocated ++;
+                       break;
+               case TGL_PEER_GEO_CHAT:
+                       TLS->geo_chats_allocated ++;
+                       break;
+               case TGL_PEER_ENCR_CHAT:
+                       TLS->encr_chats_allocated ++;
+                       break;
+               }
+               TLS->peer_tree = tree_insert_peer(TLS->peer_tree, P, lrand48());
+               increase_peer_size(TLS);
+               TLS->Peers[TLS->peer_num ++] = P;
+       }
+       if (!P->last) {
+               P->last = M;
+               M->prev = M->next = 0;
+       } else {
+               if (tgl_get_peer_type(P->id) != TGL_PEER_ENCR_CHAT) {
+                       struct tgl_message *N = P->last;
+                       struct tgl_message *NP = 0;
+                       while(N && N->id > M->id) {
+                               NP = N;
+                               N = N->next;
+                       }
+                       if (N) { assert(N->id < M->id); }
+                       M->next = N;
+                       M->prev = NP;
+                       if (N) { N->prev = M; }
+                       if (NP) { NP->next = M; }
+                       else { P->last = M; }
+               } else {
+                       struct tgl_message *N = P->last;
+                       struct tgl_message *NP = 0;
+                       M->next = N;
+                       M->prev = NP;
+                       if (N) { N->prev = M; }
+                       if (NP) { NP->next = M; }
+                       else { P->last = M; }
+               }
+       }
+}
+
+void tglm_message_del_peer(struct tgl_state *TLS, struct tgl_message *M)
+{
+       tgl_peer_id_t id;
+       if (!tgl_cmp_peer_id(M->to_id, TGL_MK_USER(TLS->our_id))) {
+               id = M->from_id;
+       } else {
+               id = M->to_id;
+       }
+       tgl_peer_t *P = tgl_peer_get(TLS, id);
+       if (M->prev) {
+               M->prev->next = M->next;
+       }
+       if (M->next) {
+               M->next->prev = M->prev;
+       }
+       if (P && P->last == M) {
+               P->last = M->next;
+       }
+}
+
+struct tgl_message *tglm_message_alloc(struct tgl_state *TLS, long long id)
+{
+       struct tgl_message *M = talloc0(sizeof(*M));
+       M->id = id;
+       tglm_message_insert_tree(TLS, M);
+       TLS->messages_allocated ++;
+       return M;
+}
+
+void tglm_update_message_id(struct tgl_state *TLS, struct tgl_message *M, long long id)
+{
+       TLS->message_tree = tree_delete_message(TLS->message_tree, M);
+       M->id = id;
+       TLS->message_tree = tree_insert_message(TLS->message_tree, M, lrand48());
+}
+
+void tglm_message_insert_tree(struct tgl_state *TLS, struct tgl_message *M)
+{
+       assert(M->id);
+       TLS->message_tree = tree_insert_message(TLS->message_tree, M, lrand48());
+}
+
+void tglm_message_remove_tree(struct tgl_state *TLS, struct tgl_message *M)
+{
+       assert(M->id);
+       TLS->message_tree = tree_delete_message(TLS->message_tree, M);
+}
+
+void tglm_message_insert(struct tgl_state *TLS, struct tgl_message *M)
+{
+       tglm_message_add_use(TLS, M);
+       tglm_message_add_peer(TLS, M);
+}
+
+void tglm_message_insert_unsent(struct tgl_state *TLS, struct tgl_message *M)
+{
+       TLS->message_unsent_tree = tree_insert_message(TLS->message_unsent_tree, M, lrand48());
+}
+
+void tglm_message_remove_unsent(struct tgl_state *TLS, struct tgl_message *M)
+{
+       TLS->message_unsent_tree = tree_delete_message(TLS->message_unsent_tree, M);
+}
+
+static void __send_msg(struct tgl_message *M, void *_TLS)
+{
+       struct tgl_state *TLS = _TLS;
+       vlogprintf(E_NOTICE, "Resending message...\n");
+
+       if (M->media.type != tgl_message_media_none) {
+               assert(M->flags & FLAG_ENCRYPTED);
+               bl_do_delete_msg(TLS, M);
+       } else {
+               tgl_do_send_msg(TLS, M, 0, 0);
+       }
+}
+
+void tglm_send_all_unsent(struct tgl_state *TLS)
+{
+       tree_act_ex_message(TLS->message_unsent_tree, __send_msg, TLS);
+}
+
+void tglp_peer_insert_name(struct tgl_state *TLS, tgl_peer_t *P)
+{
+       TLS->peer_by_name_tree = tree_insert_peer_by_name(TLS->peer_by_name_tree, P, lrand48());
+}
+
+void tglp_peer_delete_name(struct tgl_state *TLS, tgl_peer_t *P)
+{
+       TLS->peer_by_name_tree = tree_delete_peer_by_name(TLS->peer_by_name_tree, P);
+}
+
+tgl_peer_t *tgl_peer_get(struct tgl_state *TLS, tgl_peer_id_t id)
+{
+       static tgl_peer_t U;
+       U.id = id;
+       return tree_lookup_peer(TLS->peer_tree, &U);
+}
+
+struct tgl_message *tgl_message_get(struct tgl_state *TLS, long long id)
+{
+       struct tgl_message M;
+       M.id = id;
+       return tree_lookup_message(TLS->message_tree, &M);
+}
+
+tgl_peer_t *tgl_peer_get_by_name(struct tgl_state *TLS, const char *s)
+{
+       static tgl_peer_t P;
+       P.print_name =(void *)s;
+       tgl_peer_t *R = tree_lookup_peer_by_name(TLS->peer_by_name_tree, &P);
+       return R;
+}
+
+void tgl_peer_iterator_ex(struct tgl_state *TLS, void(*it)(tgl_peer_t *P, void *extra), void *extra)
+{
+       tree_act_ex_peer(TLS->peer_tree, it, extra);
+}
+
+int tgl_complete_user_list(struct tgl_state *TLS, int index, const char *text, int len, char **R)
+{
+       index ++;
+       while(index < TLS->peer_num &&(!TLS->Peers[index]->print_name || strncmp(TLS->Peers[index]->print_name, text, len) || tgl_get_peer_type(TLS->Peers[index]->id) != TGL_PEER_USER)) {
+               index ++;
+       }
+       if (index < TLS->peer_num) {
+               *R = strdup(TLS->Peers[index]->print_name);
+               assert(*R);
+               return index;
+       } else {
+               return -1;
+       }
+}
+
+int tgl_complete_chat_list(struct tgl_state *TLS, int index, const char *text, int len, char **R)
+{
+       index ++;
+       while(index < TLS->peer_num &&(!TLS->Peers[index]->print_name || strncmp(TLS->Peers[index]->print_name, text, len) || tgl_get_peer_type(TLS->Peers[index]->id) != TGL_PEER_CHAT)) {
+               index ++;
+       }
+       if (index < TLS->peer_num) {
+               *R = strdup(TLS->Peers[index]->print_name);
+               assert(*R);
+               return index;
+       } else {
+               return -1;
+       }
+}
+
+int tgl_complete_encr_chat_list(struct tgl_state *TLS, int index, const char *text, int len, char **R)
+{
+       index ++;
+       while(index < TLS->peer_num &&(!TLS->Peers[index]->print_name || strncmp(TLS->Peers[index]->print_name, text, len) || tgl_get_peer_type(TLS->Peers[index]->id) != TGL_PEER_ENCR_CHAT)) {
+               index ++;
+       }
+       if (index < TLS->peer_num) {
+               *R = strdup(TLS->Peers[index]->print_name);
+               assert(*R);
+               return index;
+       } else {
+               return -1;
+       }
+}
+
+int tgl_complete_peer_list(struct tgl_state *TLS, int index, const char *text, int len, char **R)
+{
+       index ++;
+       while(index < TLS->peer_num &&(!TLS->Peers[index]->print_name || strncmp(TLS->Peers[index]->print_name, text, len))) {
+               index ++;
+       }
+       if (index < TLS->peer_num) {
+               *R = strdup(TLS->Peers[index]->print_name);
+               assert(*R);
+               return index;
+       } else {
+               return -1;
+       }
+}
+
+int tgl_secret_chat_for_user(struct tgl_state *TLS, tgl_peer_id_t user_id)
+{
+       int index = 0;
+       while(index < TLS->peer_num &&(tgl_get_peer_type(TLS->Peers[index]->id) != TGL_PEER_ENCR_CHAT || TLS->Peers[index]->encr_chat.user_id != tgl_get_peer_id(user_id) || TLS->Peers[index]->encr_chat.state != sc_ok)) {
+               index ++;
+       }
+       if (index < TLS->peer_num) {
+               return tgl_get_peer_id(TLS->Peers[index]->encr_chat.id);
+       } else {
+               return -1;
+       }
+}
+
+void tgls_free_peer_gw(tgl_peer_t *P, void *TLS)
+{
+       tgls_free_peer(TLS, P);
+}
+
+void tgls_free_message_gw(struct tgl_message *M, void *TLS)
+{
+       tgls_free_message(TLS, M);
+}
+
+void tgl_free_all(struct tgl_state *TLS)
+{
+       tree_act_ex_peer(TLS->peer_tree, tgls_free_peer_gw, TLS);
+       TLS->peer_tree = tree_clear_peer(TLS->peer_tree);
+       TLS->peer_by_name_tree = tree_clear_peer_by_name(TLS->peer_by_name_tree);
+       tree_act_ex_message(TLS->message_tree, tgls_free_message_gw, TLS);
+       TLS->message_tree = tree_clear_message(TLS->message_tree);
+       tree_act_ex_message(TLS->message_unsent_tree, tgls_free_message_gw, TLS);
+       TLS->message_unsent_tree = tree_clear_message(TLS->message_unsent_tree);
+
+       if (TLS->encr_prime) {
+               tfree(TLS->encr_prime, 256);
+       }
+       if (TLS->binlog_name) {
+               tfree_str(TLS->binlog_name);
+       }
+       if (TLS->auth_file) {
+               tfree_str(TLS->auth_file);
+       }
+       if (TLS->downloads_directory) {
+               tfree_str(TLS->downloads_directory);
+       }
+
+       int i;
+       for (i = 0; i < TLS->rsa_key_num; i++) {
+               tfree_str(TLS->rsa_key_list[i]);
+       }
+
+       for (i = 0; i <= TLS->max_dc_num; i++) if (TLS->DC_list[i]) {
+               tgls_free_dc(TLS, TLS->DC_list[i]);
+       }
+       BN_CTX_free(TLS->BN_ctx);
+       tgls_free_pubkey(TLS);
+}
+
+int tgl_print_stat(struct tgl_state *TLS, char *s, int len)
+{
+       return tsnprintf(s, len,
+                       "users_allocated\t%d\n"
+                       "chats_allocated\t%d\n"
+                       "encr_chats_allocated\t%d\n"
+                       "peer_num\t%d\n"
+                       "messages_allocated\t%d\n",
+                       TLS->users_allocated,
+                       TLS->chats_allocated,
+                       TLS->encr_chats_allocated,
+                       TLS->peer_num,
+                       TLS->messages_allocated
+       );
+}
diff --git a/tg-engine-service/mtprotocol/tg-mime-types.c b/tg-engine-service/mtprotocol/tg-mime-types.c
new file mode 100644 (file)
index 0000000..cc8bcfb
--- /dev/null
@@ -0,0 +1,111 @@
+#include <string.h>
+#include <assert.h>
+#define MAX_MIME_TYPES_NUM 10000
+
+#include "mime-types.c"
+
+static int mime_initialized;
+static int mime_type_number;
+static char *mime_type_names[MAX_MIME_TYPES_NUM];
+static char *mime_type_extensions[MAX_MIME_TYPES_NUM];
+
+static void mime_init(void)
+{
+       char *start =(char *)mime_types;
+       char *end = start + mime_types_len;
+       mime_initialized = 1;
+       char *c = start;
+       while (c < end) {
+               if (*c == '#') {
+                       while (c < end && *c != '\n') {
+                               c ++;
+                       }
+                       if (c < end) {
+                               c ++;
+                       }
+               } else {
+                       while (*c <= ' ' && *c != '\n' && c < end) {
+                               c ++;
+                       }
+                       assert(*c > ' ' && *c != '\n' && c < end);
+                       char *name = c;
+                       while (*c > ' ' && *c != '\n' && c < end) {
+                               c ++;
+                       }
+                       assert(*c <= ' ' && *c != '\n' && c < end);
+                       *c = 0;
+                       c ++;
+                       while (1) {
+                               while (*c <= ' ' && *c != '\n' && c < end) {
+                                       c ++;
+                               }
+                               if (*c == '\n' || c == end) {
+                                       if (*c == '\n') { c ++; }
+                                       break;
+                               }
+                               char *ext = c;
+                               while (*c > ' ' && *c != '\n' && c < end) {
+                                       c ++;
+                               }
+                               assert(c != end);
+                               int br =(*c == '\n');
+                               *c = 0;
+                               c ++;
+                               assert(mime_type_number < MAX_MIME_TYPES_NUM);
+                               mime_type_names[mime_type_number] = name;
+                               mime_type_extensions[mime_type_number] = ext;
+                               mime_type_number ++;
+                               if (br) { break; }
+                       }
+               }
+       }
+}
+
+char *tg_extension_by_mime(const char *mime_type)
+{
+       if (!mime_initialized) {
+               mime_init();
+       }
+       int i;
+       for (i = 0; i < mime_type_number; i++) {
+               if (!strcmp(mime_type_names[i], mime_type)) {
+                       return mime_type_extensions[i];
+               }
+       }
+       return NULL;
+}
+
+char *tg_mime_by_filename(const char *filename)
+{
+       int l = strlen(filename);
+       const char *p = filename - 1 + l;
+       while (p >= filename && *p != '.') {
+               p --;
+       }
+       p ++;
+
+       if (!mime_initialized) {
+               mime_init();
+       }
+
+       static char *def = "application/octet-stream";
+       if (strlen(p) > 10) {
+               return def;
+       }
+       static char s[11];
+       strcpy(s, p);
+       char *q = s;
+       while (*q) {
+               if (*q >= 'A' && *p <= 'Z') {
+                       *q = *q + 'z' - 'Z';
+               }
+               q ++;
+       }
+       int i;
+       for (i = 0; i < mime_type_number; i++) {
+               if (!strcmp(mime_type_extensions[i], s)) {
+                       return mime_type_names[i];
+               }
+       }
+       return def;
+}
diff --git a/tg-engine-service/mtprotocol/tg-mime-types.h b/tg-engine-service/mtprotocol/tg-mime-types.h
new file mode 100644 (file)
index 0000000..2a1b061
--- /dev/null
@@ -0,0 +1,3 @@
+char *tg_mime_by_filename(const char *filename);
+char *tg_extension_by_mime(const char *mime_type);
+
diff --git a/tg-engine-service/mtprotocol/tgl-binlog.h b/tg-engine-service/mtprotocol/tgl-binlog.h
new file mode 100644 (file)
index 0000000..1f72dc1
--- /dev/null
@@ -0,0 +1,99 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or(at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Vitaly Valtman 2013-2015
+*/
+#ifndef __BINLOG_H__
+#define __BINLOG_H__
+
+#include "tgl.h"
+
+void bl_do_set_auth_key_id(struct tgl_state *TLS, int num, unsigned char *buf);
+void bl_do_dc_option(struct tgl_state *TLS, int id, int l1, const char *name, int l2, const char *ip, int port);
+void bl_do_set_our_id(struct tgl_state *TLS, int id);
+void bl_do_user_add(struct tgl_state *TLS, int id, const char *f, int fl, const char *l, int ll, long long access_token, const char *p, int pl, int contact);
+void bl_do_user_delete(struct tgl_state *TLS, struct tgl_user *U);
+void bl_do_set_user_profile_photo(struct tgl_state *TLS, struct tgl_user *U, long long photo_id, struct tgl_file_location *big, struct tgl_file_location *small);
+void bl_do_user_set_name(struct tgl_state *TLS, struct tgl_user *U, const char *f, int fl, const char *l, int ll);
+void bl_do_user_set_username(struct tgl_state *TLS, struct tgl_user *U, const char *f, int l);
+void bl_do_user_set_access_hash(struct tgl_state *TLS, struct tgl_user *U, long long access_token);
+void bl_do_user_set_phone(struct tgl_state *TLS, struct tgl_user *U, const char *p, int pl);
+void bl_do_user_set_friend(struct tgl_state *TLS, struct tgl_user *U, int friend);
+void bl_do_user_set_full_photo(struct tgl_state *TLS, struct tgl_user *U, const int *start, int len);
+void bl_do_user_set_blocked(struct tgl_state *TLS, struct tgl_user *U, int blocked);
+void bl_do_user_set_real_name(struct tgl_state *TLS, struct tgl_user *U, const char *f, int fl, const char *l, int ll);
+void bl_do_encr_chat_delete(struct tgl_state *TLS, struct tgl_secret_chat *U);
+void bl_do_encr_chat_requested(struct tgl_state *TLS, struct tgl_secret_chat *U, long long access_hash, int date, int admin_id, int user_id, unsigned char g_key[], unsigned char nonce[]);
+void bl_do_encr_chat_create(struct tgl_state *TLS, int id, int user_id, int admin_id, char *name, int name_len);
+void bl_do_encr_chat_set_access_hash(struct tgl_state *TLS, struct tgl_secret_chat *U, long long access_hash);
+void bl_do_encr_chat_set_date(struct tgl_state *TLS, struct tgl_secret_chat *U, int date);
+void bl_do_encr_chat_set_state(struct tgl_state *TLS, struct tgl_secret_chat *U, enum tgl_secret_chat_state state);
+void bl_do_encr_chat_set_ttl(struct tgl_state *TLS, struct tgl_secret_chat *U, int ttl);
+void bl_do_encr_chat_set_layer(struct tgl_state *TLS, struct tgl_secret_chat *U, int layer);
+void bl_do_encr_chat_accepted(struct tgl_state *TLS, struct tgl_secret_chat *U, const unsigned char g_key[], const unsigned char nonce[], long long key_fingerprint);
+void bl_do_encr_chat_set_key(struct tgl_state *TLS, struct tgl_secret_chat *E, unsigned char key[], long long key_fingerprint);
+void bl_do_encr_chat_set_sha(struct tgl_state *TLS, struct tgl_secret_chat *E, unsigned char sha[]);
+void bl_do_encr_chat_init(struct tgl_state *TLS, int id, int user_id, unsigned char random[], unsigned char g_a[]);
+void bl_do_encr_chat_update_seq(struct tgl_state *TLS, struct tgl_secret_chat *E, int in_seq_no, int out_seq_no);
+void bl_do_encr_chat_set_seq(struct tgl_state *TLS, struct tgl_secret_chat *E, int in_seq_no, int last_in_seq_no, int out_seq_no);
+void bl_do_encr_chat_exchange_request(struct tgl_state *TLS, struct tgl_secret_chat *E, long long id, unsigned char a[]);
+void bl_do_encr_chat_exchange_accept(struct tgl_state *TLS, struct tgl_secret_chat *E, long long id, unsigned char key[]);
+void bl_do_encr_chat_exchange_commit(struct tgl_state *TLS, struct tgl_secret_chat *E, unsigned char key[]);
+void bl_do_encr_chat_exchange_confirm(struct tgl_state *TLS, struct tgl_secret_chat *E);
+void bl_do_encr_chat_exchange_abort(struct tgl_state *TLS, struct tgl_secret_chat *E);
+void bl_do_dc_signed(struct tgl_state *TLS, int id);
+void bl_do_set_working_dc(struct tgl_state *TLS, int num);
+void bl_do_set_dh_params(struct tgl_state *TLS, int root, unsigned char prime[], int version);
+void bl_do_set_pts(struct tgl_state *TLS, int pts);
+void bl_do_set_qts(struct tgl_state *TLS, int qts);
+void bl_do_set_seq(struct tgl_state *TLS, int seq);
+void bl_do_set_date(struct tgl_state *TLS, int date);
+void bl_do_create_chat(struct tgl_state *TLS, struct tgl_chat *C, int y, const char *s, int l, int users_num, int date, int version, struct tgl_file_location *big, struct tgl_file_location *small);
+void bl_do_chat_forbid(struct tgl_state *TLS, struct tgl_chat *C, int on);
+void bl_do_chat_set_title(struct tgl_state *TLS, struct tgl_chat *C, const char *s, int l);
+void bl_do_chat_set_photo(struct tgl_state *TLS, struct tgl_chat *C, struct tgl_file_location *big, struct tgl_file_location *small);
+void bl_do_chat_set_date(struct tgl_state *TLS, struct tgl_chat *C, int date);
+void bl_do_chat_set_set_in_chat(struct tgl_state *TLS, struct tgl_chat *C, int on);
+void bl_do_chat_set_version(struct tgl_state *TLS, struct tgl_chat *C, int version, int user_num);
+void bl_do_chat_set_admin(struct tgl_state *TLS, struct tgl_chat *C, int admin);
+void bl_do_chat_set_participants(struct tgl_state *TLS, struct tgl_chat *C, int version, int user_num, struct tgl_chat_user *users);
+void bl_do_chat_set_full_photo(struct tgl_state *TLS, struct tgl_chat *U, const int *start, int len);
+void bl_do_chat_add_user(struct tgl_state *TLS, struct tgl_chat *C, int version, int user, int inviter, int date);
+void bl_do_chat_del_user(struct tgl_state *TLS, struct tgl_chat *C, int version, int user);
+void bl_do_create_message_text(struct tgl_state *TLS, int msg_id, int from_id, int to_type, int to_id, int date, int unread, int l, const char *s);
+void bl_do_create_message_text_fwd(struct tgl_state *TLS, int msg_id, int from_id, int to_type, int to_id, int date, int fwd, int fwd_date, int unread, int l, const char *s);
+void bl_do_create_message_service(struct tgl_state *TLS, int msg_id, int from_id, int to_type, int to_id, int date, int unread, const int *data, int len);
+void bl_do_create_message_service_fwd(struct tgl_state *TLS, int msg_id, int from_id, int to_type, int to_id, int date, int fwd, int fwd_date, int unread, const int *data, int len);
+void bl_do_create_message_media(struct tgl_state *TLS, int msg_id, int from_id, int to_type, int to_id, int date, int unread, int l, const char *s, const int *data, int len);
+void bl_do_create_message_media_encr_pending(struct tgl_state *TLS, long long msg_id, int from_id, int to_type, int to_id, int date, int l, const char *s, const int *data, int len);
+void bl_do_create_message_media_encr_sent(struct tgl_state *TLS, long long msg_id, const int *data, int len);
+void bl_do_create_message_media_fwd(struct tgl_state *TLS, int msg_id, int from_id, int to_type, int to_id, int date, int fwd, int fwd_date, int unread, int l, const char *s, const int *data, int len);
+void bl_do_create_message_media_encr(struct tgl_state *TLS, long long msg_id, int from_id, int to_type, int to_id, int date, int l, const char *s, const int *data, int len, const int *data2, int len2);
+void bl_do_create_message_service_encr(struct tgl_state *TLS, long long msg_id, int from_id, int to_type, int to_id, int date, const int *data, int len);
+void bl_do_send_message_text(struct tgl_state *TLS, long long msg_id, int from_id, int to_type, int to_id, int date, int l, const char *s);
+void bl_do_send_message_action_encr(struct tgl_state *TLS, long long msg_id, int from_id, int to_type, int to_id, int date, int l, const int *s);
+void bl_do_set_unread(struct tgl_state *TLS, struct tgl_message *M, int unread);
+void bl_do_set_message_sent(struct tgl_state *TLS, struct tgl_message *M);
+void bl_do_set_msg_id(struct tgl_state *TLS, struct tgl_message *M, int id);
+void bl_do_msg_set_outbound(struct tgl_state *TLS, long long id);
+void bl_do_delete_msg(struct tgl_state *TLS, struct tgl_message *M);
+void bl_do_msg_seq_update(struct tgl_state *TLS, long long id);
+void bl_do_msg_update(struct tgl_state *TLS, long long id);
+void bl_do_msg_set_oubound(struct tgl_state *TLS, long long id);
+void bl_do_reset_authorization(struct tgl_state *TLS);
+//void bl_do_add_dc(int id, const char *ip, int l, int port, long long auth_key_id, const char *auth_key);
+#endif
diff --git a/tg-engine-service/mtprotocol/tgl-fetch.h b/tg-engine-service/mtprotocol/tgl-fetch.h
new file mode 100644 (file)
index 0000000..ac928cf
--- /dev/null
@@ -0,0 +1,53 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or(at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Vitaly Valtman 2014-2015
+*/
+#ifndef __TGL_FETCH_H__
+#define __TGL_FETCH_H__
+
+#include "tgl.h"
+
+int tglf_fetch_file_location(struct tgl_state *TLS, struct tgl_file_location *loc);
+int tglf_fetch_user_status(struct tgl_state *TLS, struct tgl_user_status *S, struct tgl_user *U);
+int tglf_fetch_user(struct tgl_state *TLS, struct tgl_user *U);
+struct tgl_user *tglf_fetch_alloc_user(struct tgl_state *TLS);
+struct tgl_user *tglf_fetch_alloc_user_full(struct tgl_state *TLS);
+struct tgl_chat *tglf_fetch_alloc_chat(struct tgl_state *TLS);
+struct tgl_chat *tglf_fetch_alloc_chat_full(struct tgl_state *TLS);
+struct tgl_secret_chat *tglf_fetch_alloc_encrypted_chat(struct tgl_state *TLS);
+struct tgl_message *tglf_fetch_alloc_message(struct tgl_state *TLS);
+struct tgl_message *tglf_fetch_alloc_geo_message(struct tgl_state *TLS);
+struct tgl_message *tglf_fetch_alloc_message_short(struct tgl_state *TLS);
+struct tgl_message *tglf_fetch_alloc_message_short_chat(struct tgl_state *TLS);
+struct tgl_message *tglf_fetch_alloc_encrypted_message(struct tgl_state *TLS);
+void tglf_fetch_encrypted_message_file(struct tgl_state *TLS, struct tgl_message_media *M);
+tgl_peer_id_t tglf_fetch_peer_id(struct tgl_state *TLS);
+void tglf_fetch_message_media(struct tgl_state *TLS, struct tgl_message_media *M);
+void tglf_fetch_message_media_encrypted(struct tgl_state *TLS, struct tgl_message_media *M);
+void tglf_fetch_message_action(struct tgl_state *TLS, struct tgl_message_action *M);
+void tglf_fetch_message_action_encrypted(struct tgl_state *TLS, struct tgl_message_action *M);
+void tglf_fetch_photo(struct tgl_state *TLS, struct tgl_photo *P);
+void tglf_fetch_chat(struct tgl_state *TLS, struct tgl_chat *C);
+void tglf_fetch_chat_full(struct tgl_state *TLS, struct tgl_chat *C);
+void tglf_fetch_audio(struct tgl_state *TLS, struct tgl_document *V);
+void tglf_fetch_video(struct tgl_state *TLS, struct tgl_document *V);
+void tglf_fetch_document(struct tgl_state *TLS, struct tgl_document *V);
+void tglf_fetch_message(struct tgl_state *TLS, struct tgl_message *M);
+void tglf_fetch_geo_message(struct tgl_state *TLS, struct tgl_message *M);
+
+#endif
diff --git a/tg-engine-service/mtprotocol/tgl-inner.h b/tg-engine-service/mtprotocol/tgl-inner.h
new file mode 100644 (file)
index 0000000..c98f09a
--- /dev/null
@@ -0,0 +1,31 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Vitaly Valtman 2014-2015
+*/
+
+#ifndef __TGL_INNER_H__
+#define __TGL_INNER_H__
+
+#define vlogprintf(verbosity_level,...) \
+  do { \
+    if (TLS->verbosity >= verbosity_level) { \
+      TLS->callback.logprintf (__VA_ARGS__); \
+    } \
+  } while (0)
+
+#endif
diff --git a/tg-engine-service/mtprotocol/tgl-layout.h b/tg-engine-service/mtprotocol/tgl-layout.h
new file mode 100644 (file)
index 0000000..5b5e231
--- /dev/null
@@ -0,0 +1,490 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Vitaly Valtman 2014-2015
+ */
+#ifndef __TGL_LAYOUT_H__
+#define __TGL_LAYOUT_H__
+
+#define FLAG_MESSAGE_EMPTY 1
+#define FLAG_DELETED 2
+#define FLAG_FORBIDDEN 4
+#define FLAG_HAS_PHOTO 8
+#define FLAG_CREATED 16
+#define FLAG_SESSION_OUTBOUND 32
+#define FLAG_USER_SELF 128
+#define FLAG_USER_FOREIGN 256
+#define FLAG_USER_CONTACT 512
+#define FLAG_USER_IN_CONTACT 1024
+#define FLAG_USER_OUT_CONTACT 2048
+#define FLAG_CHAT_IN_CHAT 128
+#define FLAG_ENCRYPTED 4096
+#define FLAG_PENDING 8192
+#define FLAG_DOCUMENT_IMAGE 1
+#define FLAG_DOCUMENT_STICKER 2
+#define FLAG_DOCUMENT_ANIMATED 4
+#define FLAG_DOCUMENT_AUDIO 8
+#define FLAG_DOCUMENT_VIDEO 16
+
+#pragma pack(push,4)
+
+typedef struct {
+       int type;
+       int id;
+} tgl_peer_id_t;
+
+enum tgl_dc_state {
+       st_init,
+       st_reqpq_sent,
+       st_reqdh_sent,
+       st_client_dh_sent,
+       st_init_temp,
+       st_reqpq_sent_temp,
+       st_reqdh_sent_temp,
+       st_client_dh_sent_temp,
+       st_authorized,
+       st_error
+};
+
+#define MAX_DC_SESSIONS 3
+
+struct tgl_session {
+       struct tgl_dc *dc;
+       long long session_id;
+       long long last_msg_id;
+       int seq_no;
+       int received_messages;
+       struct connection *c;
+       struct tree_long *ack_tree;
+       struct tgl_timer *ev;
+};
+
+struct tgl_dc {
+       int id;
+       int port;
+       int flags;
+       int rsa_key_idx;
+       enum tgl_dc_state state;
+       char *ip;
+       //char *user;
+       struct tgl_session *sessions[MAX_DC_SESSIONS];
+       char auth_key[256];
+       char temp_auth_key[256];
+       char nonce[256];
+       char new_nonce[256];
+       char server_nonce[256];
+       long long auth_key_id;
+       long long temp_auth_key_id;
+       long long temp_auth_key_bind_query_id;
+       long long server_salt;
+       struct tgl_timer *ev;
+       int server_time_delta;
+       double server_time_udelta;
+       int has_auth;
+};
+
+enum tgl_message_media_type {
+       tgl_message_media_none,
+       tgl_message_media_photo,
+       //tgl_message_media_video,
+       //tgl_message_media_audio,
+       tgl_message_media_document,
+       tgl_message_media_geo,
+       tgl_message_media_contact,
+       tgl_message_media_unsupported,
+       tgl_message_media_photo_encr,
+       //tgl_message_media_video_encr,
+       //tgl_message_media_audio_encr,
+       tgl_message_media_document_encr,
+};
+
+enum tgl_message_action_type {
+       tgl_message_action_none,
+       tgl_message_action_geo_chat_create,
+       tgl_message_action_geo_chat_checkin,
+       tgl_message_action_chat_create,
+       tgl_message_action_chat_edit_title,
+       tgl_message_action_chat_edit_photo,
+       tgl_message_action_chat_delete_photo,
+       tgl_message_action_chat_add_user,
+       tgl_message_action_chat_delete_user,
+       tgl_message_action_set_message_ttl,
+       tgl_message_action_read_messages,
+       tgl_message_action_delete_messages,
+       tgl_message_action_screenshot_messages,
+       tgl_message_action_flush_history,
+       tgl_message_action_resend,
+       tgl_message_action_notify_layer,
+       tgl_message_action_typing,
+       tgl_message_action_noop,
+       tgl_message_action_commit_key,
+       tgl_message_action_abort_key,
+       tgl_message_action_request_key,
+       tgl_message_action_accept_key
+};
+
+enum tgl_typing_status {
+       tgl_typing_none = 1,
+       tgl_typing_typing,
+       tgl_typing_cancel,
+       tgl_typing_record_video,
+       tgl_typing_upload_video,
+       tgl_typing_record_audio,
+       tgl_typing_upload_audio,
+       tgl_typing_upload_photo,
+       tgl_typing_upload_document,
+       tgl_typing_geo,
+       tgl_typing_choose_contact
+};
+
+struct tgl_file_location {
+       int dc;
+       long long volume;
+       int local_id;
+       long long secret;
+};
+
+struct tgl_photo_size {
+       char *type;
+       struct tgl_file_location loc;
+       int w;
+       int h;
+       int size;
+       char *data;
+};
+
+struct tgl_geo {
+       double longitude;
+       double latitude;
+};
+
+struct tgl_photo {
+       long long id;
+       long long access_hash;
+       int user_id;
+       int date;
+       char *caption;
+       struct tgl_geo geo;
+       int sizes_num;
+       struct tgl_photo_size *sizes;
+};
+
+struct tgl_encr_photo {
+       long long id;
+       long long access_hash;
+       int dc_id;
+       int size;
+       int key_fingerprint;
+       int flags;
+
+       unsigned char *key;
+       unsigned char *iv;
+       int w;
+       int h;
+};
+
+/*struct tgl_encr_video {
+  long long id;
+  long long access_hash;
+  int dc_id;
+  int size;
+  int key_fingerprint;
+
+  unsigned char *key;
+  unsigned char *iv;
+  int w;
+  int h;
+  int duration;
+  char *mime_type;
+};
+
+struct tgl_encr_audio {
+  long long id;
+  long long access_hash;
+  int dc_id;
+  int size;
+  int key_fingerprint;
+
+  unsigned char *key;
+  unsigned char *iv;
+  int duration;
+  char *mime_type;
+};*/
+
+struct tgl_encr_document {
+       long long id;
+       long long access_hash;
+       int dc_id;
+       int size;
+       int key_fingerprint;
+       int flags;
+
+       unsigned char *key;
+       unsigned char *iv;
+       int w;
+       int h;
+       char *caption;
+       char *mime_type;
+       int duration;
+};
+
+//struct tgl_encr_file {
+//  char *filename;
+//  unsigned char *key;
+//  unsigned char *iv;
+//};
+
+
+struct tgl_user_status {
+       int online;
+       int when;
+       struct tgl_timer *ev;
+};
+
+struct tgl_user {
+       tgl_peer_id_t id;
+       int flags;
+       struct tgl_message *last;
+       char *print_name;
+       int structure_version;
+       struct tgl_file_location photo_big;
+       struct tgl_file_location photo_small;
+       long long photo_id;
+       struct tgl_photo photo;
+       char *first_name;
+       char *last_name;
+       char *phone;
+       long long access_hash;
+       struct tgl_user_status status;
+       int blocked;
+       char *real_first_name;
+       char *real_last_name;
+       char *username;
+};
+
+struct tgl_chat_user {
+       int user_id;
+       int inviter_id;
+       int date;
+};
+
+struct tgl_chat {
+       tgl_peer_id_t id;
+       int flags;
+       struct tgl_message *last;
+       char *print_title;
+       int structure_version;
+       struct tgl_file_location photo_big;
+       struct tgl_file_location photo_small;
+       struct tgl_photo photo;
+       char *title;
+       int users_num;
+       int user_list_size;
+       int user_list_version;
+       struct tgl_chat_user *user_list;
+       int date;
+       int version;
+       int admin_id;
+};
+
+enum tgl_secret_chat_state {
+       sc_none,
+       sc_waiting,
+       sc_request,
+       sc_ok,
+       sc_deleted
+};
+
+enum tgl_secret_chat_exchange_state {
+       tgl_sce_none,
+       tgl_sce_requested,
+       tgl_sce_accepted,
+       tgl_sce_committed
+};
+
+struct tgl_secret_chat {
+       tgl_peer_id_t id;
+       int flags;
+       struct tgl_message *last;
+       char *print_name;
+       int structure_version;
+       struct tgl_file_location photo_big;
+       struct tgl_file_location photo_small;
+       struct tgl_photo photo;
+       int user_id;
+       int admin_id;
+       int date;
+       int ttl;
+       int layer;
+       int in_seq_no;
+       int out_seq_no;
+       int last_in_seq_no;
+       long long access_hash;
+       unsigned char *g_key;
+       unsigned char *nonce;
+
+       enum tgl_secret_chat_state state;
+       int key[64];
+       long long key_fingerprint;
+       unsigned char first_key_sha[20];
+
+       long long exchange_id;
+       enum tgl_secret_chat_exchange_state exchange_state;
+       int exchange_key[64];
+       long long exchange_key_fingerprint;
+};
+
+typedef union tgl_peer {
+       struct {
+               tgl_peer_id_t id;
+               int flags;
+               struct tgl_message *last;
+               char *print_name;
+               int structure_version;
+               struct tgl_file_location photo_big;
+               struct tgl_file_location photo_small;
+               struct tgl_photo photo;
+       };
+       struct tgl_user user;
+       struct tgl_chat chat;
+       struct tgl_secret_chat encr_chat;
+} tgl_peer_t;
+/*
+struct tgl_video {
+  long long id;
+  long long access_hash;
+  int user_id;
+  int date;
+  int size;
+  int dc_id;
+  struct tgl_photo_size thumb;
+  char *caption;
+  int duration;
+  int w;
+  int h;
+  char *mime_type;
+};
+
+struct tgl_audio {
+  long long id;
+  long long access_hash;
+  int user_id;
+  int date;
+  int size;
+  int dc_id;
+  int duration;
+  char *mime_type;
+};*/
+
+struct tgl_document {
+       long long id;
+       long long access_hash;
+       int user_id;
+       int date;
+       int size;
+       int dc_id;
+       struct tgl_photo_size thumb;
+       char *caption;
+       char *mime_type;
+
+       int w;
+       int h;
+       int flags;
+       int duration;
+};
+
+struct tgl_message_action {
+       enum tgl_message_action_type type;
+       union {
+               struct {
+                       char *title;
+                       int user_num;
+                       int *users;
+               };
+               char *new_title;
+               struct tgl_photo photo;
+               int user;
+               int ttl;
+               int layer;
+               int read_cnt;
+               int delete_cnt;
+               int screenshot_cnt;
+               enum tgl_typing_status typing;
+               struct {
+                       int start_seq_no;
+                       int end_seq_no;
+               };
+               struct {
+                       unsigned char *g_a;
+                       long long exchange_id;
+                       long long key_fingerprint;
+               };
+       };
+};
+
+struct tgl_message_media {
+       enum tgl_message_media_type type;
+       union {
+               struct tgl_photo photo;
+               //struct tgl_video video;
+               //struct tgl_audio audio;
+               struct tgl_document document;
+               struct tgl_encr_document encr_document;
+
+               struct tgl_geo geo;
+               struct {
+                       char *phone;
+                       char *first_name;
+                       char *last_name;
+                       int user_id;
+               };
+               struct tgl_encr_photo encr_photo;
+               //struct tgl_encr_video encr_video;
+               //struct tgl_encr_audio encr_audio;
+               //struct tgl_encr_document encr_document;
+               //struct tgl_encr_file encr_file;
+               struct {
+                       void *data;
+                       int data_size;
+               };
+       };
+};
+
+struct tgl_message {
+       struct tgl_message *next_use, *prev_use;
+       struct tgl_message *next, *prev;
+       long long id;
+       int flags;
+       tgl_peer_id_t fwd_from_id;
+       int fwd_date;
+       tgl_peer_id_t from_id;
+       tgl_peer_id_t to_id;
+       int out;
+       int unread;
+       int date;
+       int service;
+       union {
+               struct tgl_message_action action;
+               struct {
+                       char *message;
+                       int message_len;
+                       struct tgl_message_media media;
+               };
+       };
+};
+#pragma pack(pop)
+#endif
diff --git a/tg-engine-service/mtprotocol/tgl-net-inner.h b/tg-engine-service/mtprotocol/tgl-net-inner.h
new file mode 100644 (file)
index 0000000..2b4d3cc
--- /dev/null
@@ -0,0 +1,79 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Vitaly Valtman 2013-2015
+ */
+#ifndef __NET_H__
+#define __NET_H__
+
+#include <Ecore.h>
+
+struct connection_buffer {
+       unsigned char *start;
+       unsigned char *end;
+       unsigned char *rptr;
+       unsigned char *wptr;
+       struct connection_buffer *next;
+};
+
+enum conn_state {
+       conn_none,
+       conn_connecting,
+       conn_ready,
+       conn_failed,
+       conn_stopped
+};
+
+struct connection {
+       int fd;
+       char *ip;
+       int port;
+       int flags;
+       enum conn_state state;
+       int ipv6[4];
+       struct connection_buffer *in_head;
+       struct connection_buffer *in_tail;
+       struct connection_buffer *out_head;
+       struct connection_buffer *out_tail;
+       int in_bytes;
+       int out_bytes;
+       int packet_num;
+       int out_packet_num;
+       int last_connect_time;
+       int in_fail_timer;
+       struct mtproto_methods *methods;
+       struct tgl_state *TLS;
+       struct tgl_session *session;
+       struct tgl_dc *dc;
+       void *extra;
+       Ecore_Timer* ping_ev;
+       Ecore_Timer* fail_ev;
+       Ecore_Fd_Handler *read_ev;
+       Ecore_Thread *thrd;
+       double last_receive_time;
+};
+
+int tgln_write_out(struct connection *c, const void *data, int len);
+void tgln_flush_out(struct connection *c);
+int tgln_read_in(struct connection *c, void *data, int len);
+int tgln_read_in_lookup(struct connection *c, void *data, int len);
+
+extern struct tgl_net_methods tgl_conn_methods;
+struct connection *tgln_create_connection (struct tgl_state *TLS, const char *host, int port, struct tgl_session *session, struct tgl_dc *dc, struct mtproto_methods *methods);
+
+#define GET_DC(c) (c->session->dc)
+#endif
diff --git a/tg-engine-service/mtprotocol/tgl-net.c b/tg-engine-service/mtprotocol/tgl-net.c
new file mode 100644 (file)
index 0000000..a37310b
--- /dev/null
@@ -0,0 +1,707 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or(at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Vitaly Valtman 2013-2015
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#define _GNU_SOURCE
+#include <string.h>
+#include <stdlib.h>
+#include <assert.h>
+#include <sys/types.h>
+#include <netdb.h>
+#include <netinet/in.h>
+#include <netinet/tcp.h>
+#include <sys/fcntl.h>
+#include <sys/socket.h>
+#include <errno.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <poll.h>
+#include <openssl/rand.h>
+#include <arpa/inet.h>
+#include <sys/time.h>
+#include <time.h>
+#include "tgl-net-inner.h"
+#include "tgl-net.h"
+#include "tgl.h"
+#include "tgl-inner.h"
+#include "tree.h"
+#include "tools.h"
+
+#ifndef POLLRDHUP
+#define POLLRDHUP 0
+#endif
+
+int errno;
+
+static void fail_connection(struct connection *c);
+static void conn_try_write(void *arg);
+
+#define PING_TIMEOUT 10
+
+//static Eina_Bool th_do(void *data)
+static void th_do(void *data, Ecore_Thread *th)
+{
+       struct connection *c = data;
+       fd_set writeset;
+       FD_ZERO(&writeset);
+
+       FD_SET(c->fd, &writeset);
+       select(c->fd + 1, NULL, &writeset, NULL, NULL);
+
+       ecore_thread_feedback(c->thrd, c);
+
+       //return ECORE_CALLBACK_CANCEL;
+}
+
+static void th_feedback(void *data, Ecore_Thread *th, void *msg)
+{
+       struct connection *c = msg;
+       conn_try_write(c);
+}
+
+// BONUS (optional): called after th_do returns and has NOT been cancelled
+static void th_end(void *data, Ecore_Thread *th) { printf("thread ended\n"); }
+// BONUS (optional): called in mainloop AFTER thread has finished cancelling
+static void th_cancel(void *data, Ecore_Thread *th) { printf("thread cancelled\n"); }
+
+
+
+static void start_ping_timer(struct connection *c);
+
+Eina_Bool ping_alarm(void *arg)
+{
+       struct connection *c = arg;
+       struct tgl_state *TLS = c->TLS;
+       vlogprintf(E_DEBUG + 2,"ping alarm\n");
+       assert(c->state == conn_ready || c->state == conn_connecting);
+       if (tglt_get_double_time() - c->last_receive_time > 6 * PING_TIMEOUT) {
+               vlogprintf(E_WARNING, "fail connection: reason: ping timeout\n");
+               c->state = conn_failed;
+               fail_connection(c);
+       } else if (tglt_get_double_time() - c->last_receive_time > 3 * PING_TIMEOUT && c->state == conn_ready) {
+               tgl_do_send_ping(c->TLS, c);
+               start_ping_timer(c);
+       } else {
+               start_ping_timer(c);
+       }
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static void stop_ping_timer(struct connection *c)
+{
+       if(c->ping_ev) {
+               ecore_timer_del(c->ping_ev);
+               c->ping_ev = NULL;
+       }
+}
+
+static void start_ping_timer(struct connection *c)
+{
+       c->ping_ev = ecore_timer_add(PING_TIMEOUT, ping_alarm, c);
+}
+
+static void restart_connection(struct connection *c);
+
+Eina_Bool fail_alarm(void *arg)
+{
+       struct connection *c = arg;
+       c->in_fail_timer = 0;
+       restart_connection(c);
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static void start_fail_timer(struct connection *c)
+{
+       if (c->in_fail_timer) {
+               return;
+       }
+       c->in_fail_timer = 1;
+       c->fail_ev = ecore_timer_add(10, fail_alarm, c);
+}
+
+static struct connection_buffer *new_connection_buffer(int size)
+{
+       struct connection_buffer *b = talloc0(sizeof(*b));
+       b->start = talloc(size);
+       b->end = b->start + size;
+       b->rptr = b->wptr = b->start;
+       return b;
+}
+
+static void delete_connection_buffer(struct connection_buffer *b)
+{
+       tfree(b->start, b->end - b->start);
+       tfree(b, sizeof(*b));
+}
+
+int tgln_write_out(struct connection *c, const void *_data, int len)
+{
+       struct tgl_state *TLS = c->TLS;
+       vlogprintf(E_DEBUG, "write_out: %d bytes\n", len);
+       const unsigned char *data = _data;
+       if (!len) { return 0; }
+       assert(len > 0);
+       int x = 0;
+       if (!c->out_bytes) {
+/*             Ecore_Idler *idler_for_event;
+               idler_for_event = ecore_idler_add(th_do, c);*/
+
+               if(c->thrd) {
+                       ecore_thread_cancel(c->thrd);
+                       c->thrd = NULL;
+               }
+
+               c->thrd = ecore_thread_feedback_run(th_do, th_feedback, th_end, th_cancel, c, EINA_FALSE);
+
+       }
+
+       if (!c->out_head) {
+               struct connection_buffer *b = new_connection_buffer(1 << 20);
+               c->out_head = c->out_tail = b;
+       }
+       while(len) {
+               if (c->out_tail->end - c->out_tail->wptr >= len) {
+                       memcpy(c->out_tail->wptr, data, len);
+                       c->out_tail->wptr += len;
+                       c->out_bytes += len;
+                       return x + len;
+               } else {
+                       int y = c->out_tail->end - c->out_tail->wptr;
+                       assert(y < len);
+                       memcpy(c->out_tail->wptr, data, y);
+                       x += y;
+                       len -= y;
+                       data += y;
+                       struct connection_buffer *b = new_connection_buffer(1 << 20);
+                       c->out_tail->next = b;
+                       b->next = 0;
+                       c->out_tail = b;
+                       c->out_bytes += y;
+               }
+       }
+       return x;
+}
+
+int tgln_read_in(struct connection *c, void *_data, int len)
+{
+       unsigned char *data = _data;
+       if (!len) { return 0; }
+       assert(len > 0);
+       if (len > c->in_bytes) {
+               len = c->in_bytes;
+       }
+       int x = 0;
+       while(len) {
+               int y = c->in_head->wptr - c->in_head->rptr;
+               if (y > len) {
+                       memcpy(data, c->in_head->rptr, len);
+                       c->in_head->rptr += len;
+                       c->in_bytes -= len;
+                       return x + len;
+               } else {
+                       memcpy(data, c->in_head->rptr, y);
+                       c->in_bytes -= y;
+                       x += y;
+                       data += y;
+                       len -= y;
+                       void *old = c->in_head;
+                       c->in_head = c->in_head->next;
+                       if (!c->in_head) {
+                               c->in_tail = 0;
+                       }
+                       delete_connection_buffer(old);
+               }
+       }
+       return x;
+}
+
+int tgln_read_in_lookup(struct connection *c, void *_data, int len)
+{
+       unsigned char *data = _data;
+       if (!len || !c->in_bytes) {
+               return 0;
+       }
+       assert(len > 0);
+
+       if (len > c->in_bytes) {
+               len = c->in_bytes;
+       }
+
+       int x = 0;
+       struct connection_buffer *b = c->in_head;
+
+       while(len) {
+               int y = b->wptr - b->rptr;
+               if (y >= len) {
+                       memcpy(data, b->rptr, len);
+                       return x + len;
+               } else {
+                       memcpy(data, b->rptr, y);
+                       x += y;
+                       data += y;
+                       len -= y;
+                       b = b->next;
+               }
+       }
+       return x;
+}
+
+void tgln_flush_out(struct connection *c)
+{
+       // not used.
+}
+
+#define MAX_CONNECTIONS 100
+static struct connection *Connections[MAX_CONNECTIONS];
+static int max_connection_fd;
+
+static void rotate_port(struct connection *c)
+{
+       switch(c->port) {
+       case 443:
+               c->port = 80;
+               break;
+       case 80:
+               c->port = 25;
+               break;
+       case 25:
+               c->port = 443;
+               break;
+       }
+}
+
+static void try_read(struct connection *c);
+static void try_write(struct connection *c);
+
+
+static Eina_Bool conn_try_read(void *arg, Ecore_Fd_Handler *handler)
+{
+       struct connection *c = arg;
+       struct tgl_state *TLS = c->TLS;
+       vlogprintf(E_DEBUG + 1, "Try read. Fd = %d\n", c->fd);
+       try_read(c);
+       return ECORE_CALLBACK_RENEW;
+}
+
+void conn_try_write(void *arg)
+{
+       struct connection *c = arg;
+       struct tgl_state *TLS = c->TLS;
+
+       if (c->state == conn_connecting) {
+               c->state = conn_ready;
+               c->methods->ready(TLS, c);
+       }
+
+       try_write(c);
+       if (c->out_bytes) {
+/*             Ecore_Idler *idler_for_event;
+               idler_for_event = ecore_idler_add(th_do, c);*/
+               if(c->thrd) {
+                       ecore_thread_cancel(c->thrd);
+                       c->thrd = NULL;
+               }
+
+               c->thrd = ecore_thread_feedback_run(th_do, th_feedback, th_end, th_cancel, c, EINA_FALSE);
+       }
+}
+
+static int my_connect(struct connection *c, const char *host)
+{
+       struct tgl_state *TLS = c->TLS;
+       int v6 = TLS->ipv6_enabled;
+
+       int fd = socket(v6 ? AF_INET6 : AF_INET, SOCK_STREAM, 0);
+       if (fd < 0) {
+               vlogprintf(E_ERROR, "Can not create socket: %m\n");
+               start_fail_timer(c);
+               return -1;
+       }
+       assert(fd >= 0 && fd < MAX_CONNECTIONS);
+
+       if (fd > max_connection_fd) {
+               max_connection_fd = fd;
+       }
+
+       int flags = -1;
+       setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &flags, sizeof(flags));
+       setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, &flags, sizeof(flags));
+       setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &flags, sizeof(flags));
+
+       struct sockaddr_in addr;
+       struct sockaddr_in6 addr6;
+       memset(&addr, 0, sizeof(addr));
+       memset(&addr6, 0, sizeof(addr6));
+
+       if (v6) {
+               addr6.sin6_family = AF_INET6;
+               addr6.sin6_port = htons(c->port);
+               if (inet_pton(AF_INET6, host, &addr6.sin6_addr.s6_addr) != 1) {
+                       vlogprintf(E_ERROR, "Bad ipv6 %s\n", host);
+                       close(fd);
+                       return -1;
+               }
+       } else {
+               addr.sin_family = AF_INET;
+               addr.sin_port = htons(c->port);
+               if (inet_pton(AF_INET, host, &addr.sin_addr.s_addr) != 1) {
+                       vlogprintf(E_ERROR, "Bad ipv4 %s\n", host);
+                       close(fd);
+                       return -1;
+               }
+       }
+
+       fcntl(fd, F_SETFL, O_NONBLOCK);
+
+       if (connect(fd,(struct sockaddr *)(v6 ?(void *)&addr6 :(void *)&addr), v6 ? sizeof(addr6) : sizeof(addr)) == -1) {
+               if (errno != EINPROGRESS) {
+                       close(fd);
+                       return -1;
+               }
+       }
+
+       return fd;
+}
+
+static Eina_Bool read_timer_alarm(void* arg)
+{
+       struct connection *c = arg;
+       if(c->read_ev) {
+               ecore_main_fd_handler_del(c->read_ev);
+               c->read_ev = NULL;
+       }
+       c->read_ev = ecore_main_fd_handler_add(c->fd, ECORE_FD_READ, conn_try_read, c, NULL,NULL);
+       return ECORE_CALLBACK_CANCEL;
+}
+
+struct connection *tgln_create_connection(struct tgl_state *TLS, const char *host, int port, struct tgl_session *session, struct tgl_dc *dc, struct mtproto_methods *methods)
+{
+       struct connection *c = talloc0(sizeof(*c));
+       c->TLS = TLS;
+       c->ip = tstrdup(host);
+       c->port = port;
+
+       int fd = my_connect(c, c->ip);
+       if (fd < 0) {
+               vlogprintf(E_ERROR, "Can not connect to %s:%d %m\n", host, port);
+               tfree(c, sizeof(*c));
+               return 0;
+       }
+
+       c->fd = fd;
+       c->state = conn_connecting;
+       c->last_receive_time = tglt_get_double_time();
+       c->flags = 0;
+       c->thrd = 0;
+       assert(!Connections[fd]);
+       Connections[fd] = c;
+
+       Ecore_Timer* timer = ecore_timer_add(5, read_timer_alarm, c);
+       if(!timer) {
+               //handle error
+       }
+
+       start_ping_timer(c);
+
+       c->dc = dc;
+       c->session = session;
+       c->methods = methods;
+
+       char byte = 0xef;
+       int ret;
+       ret = tgln_write_out(c, &byte, 1);
+       assert(ret == 1);
+       tgln_flush_out(c);
+
+       return c;
+}
+
+static void restart_connection(struct connection *c)
+{
+       struct tgl_state *TLS = c->TLS;
+
+       if (c->last_connect_time == time(0)) {
+               start_fail_timer(c);
+               return;
+       }
+
+       if (strcmp(c->ip, c->dc->ip)) {
+               tfree_str(c->ip);
+               c->ip = tstrdup(c->dc->ip);
+       }
+
+       c->last_connect_time = time(0);
+       int fd = my_connect(c, c->ip);
+       if (fd < 0) {
+               vlogprintf(E_WARNING, "Can not connect to %s:%d %m\n", c->ip, c->port);
+               start_fail_timer(c);
+               return;
+       }
+
+       c->fd = fd;
+       c->state = conn_connecting;
+       c->thrd = 0;
+       c->last_receive_time = tglt_get_double_time();
+       start_ping_timer(c);
+       Connections[fd] = c;
+       Ecore_Timer* timer = ecore_timer_add(5, read_timer_alarm, c);
+       if(!timer) {
+
+       }
+
+       char byte = 0xef;
+       assert(tgln_write_out(c, &byte, 1) == 1);
+       tgln_flush_out(c);
+}
+
+static void fail_connection(struct connection *c)
+{
+       struct tgl_state *TLS = c->TLS;
+       if (c->state == conn_ready || c->state == conn_connecting) {
+               stop_ping_timer(c);
+       }
+
+       if(c->read_ev) {
+               ecore_main_fd_handler_del(c->read_ev);
+               c->read_ev = NULL;
+       }
+       if(c->thrd) {
+               ecore_thread_cancel(c->thrd);
+               c->thrd = NULL;
+       }
+
+       rotate_port(c);
+       struct connection_buffer *b = c->out_head;
+       while(b) {
+               struct connection_buffer *d = b;
+               b = b->next;
+               delete_connection_buffer(d);
+       }
+       b = c->in_head;
+       while(b) {
+               struct connection_buffer *d = b;
+               b = b->next;
+               delete_connection_buffer(d);
+       }
+       c->out_head = c->out_tail = c->in_head = c->in_tail = 0;
+       c->state = conn_failed;
+       c->out_bytes = c->in_bytes = 0;
+       close(c->fd);
+       Connections[c->fd] = 0;
+       vlogprintf(E_NOTICE, "Lost connection to server... %s:%d\n", c->ip, c->port);
+       restart_connection(c);
+}
+
+static void try_write(struct connection *c)
+{
+       struct tgl_state *TLS = c->TLS;
+       vlogprintf(E_DEBUG, "try write: fd = %d\n", c->fd);
+       int x = 0;
+
+       while(c->out_head) {
+               int r = write(c->fd, c->out_head->rptr, c->out_head->wptr - c->out_head->rptr);
+               if (r >= 0) {
+                       x += r;
+                       c->out_head->rptr += r;
+                       if (c->out_head->rptr != c->out_head->wptr) {
+                               break;
+                       }
+                       struct connection_buffer *b = c->out_head;
+                       c->out_head = b->next;
+                       if (!c->out_head) {
+                               c->out_tail = 0;
+                       }
+                       delete_connection_buffer(b);
+               } else {
+                       if (errno != EAGAIN && errno != EWOULDBLOCK) {
+                               vlogprintf(E_NOTICE, "fail_connection: write_error %m\n");
+                               fail_connection(c);
+                               return;
+                       } else {
+                               break;
+                       }
+               }
+       }
+
+       vlogprintf(E_DEBUG, "Sent %d bytes to %d\n", x, c->fd);
+       c->out_bytes -= x;
+}
+
+static void try_rpc_read(struct connection *c)
+{
+       assert(c->in_head);
+       struct tgl_state *TLS = c->TLS;
+
+       while(1) {
+               if (c->in_bytes < 1) { return; }
+               unsigned len = 0;
+               unsigned t = 0;
+               assert(tgln_read_in_lookup(c, &len, 1) == 1);
+
+               if (len >= 1 && len <= 0x7e) {
+                       if (c->in_bytes <(int)(1 + 4 * len)) { return; }
+               } else {
+                       if (c->in_bytes < 4) { return; }
+                       assert(tgln_read_in_lookup(c, &len, 4) == 4);
+                       len =(len >> 8);
+                       if (c->in_bytes <(int)(4 + 4 * len)) { return; }
+                       len = 0x7f;
+               }
+
+               if (len >= 1 && len <= 0x7e) {
+                       assert(tgln_read_in(c, &t, 1) == 1);
+                       assert(t == len);
+                       assert(len >= 1);
+               } else {
+                       assert(len == 0x7f);
+                       assert(tgln_read_in(c, &len, 4) == 4);
+                       len =(len >> 8);
+                       assert(len >= 1);
+               }
+
+               len *= 4;
+               int op;
+               assert(tgln_read_in_lookup(c, &op, 4) == 4);
+
+               if (c->methods->execute(TLS, c, op, len) < 0) {
+                       return;
+               }
+       }
+
+}
+
+static void try_read(struct connection *c)
+{
+       struct tgl_state *TLS = c->TLS;
+       vlogprintf(E_DEBUG, "try read: fd = %d\n", c->fd);
+
+       if (!c->in_tail) {
+               c->in_head = c->in_tail = new_connection_buffer(1 << 20);
+       }
+
+       int x = 0;
+
+       while(1) {
+               int r = read(c->fd, c->in_tail->wptr, c->in_tail->end - c->in_tail->wptr);
+               if (r > 0) {
+                       c->last_receive_time = tglt_get_double_time();
+                       stop_ping_timer(c);
+                       start_ping_timer(c);
+               }
+               if (r >= 0) {
+                       c->in_tail->wptr += r;
+                       x += r;
+                       if (c->in_tail->wptr != c->in_tail->end) {
+                               break;
+                       }
+                       struct connection_buffer *b = new_connection_buffer(1 << 20);
+                       c->in_tail->next = b;
+                       c->in_tail = b;
+               } else {
+                       if (errno != EAGAIN && errno != EWOULDBLOCK) {
+                               vlogprintf(E_NOTICE, "fail_connection: read_error %m\n");
+                               fail_connection(c);
+                               return;
+                       } else {
+                               break;
+                       }
+               }
+       }
+
+       vlogprintf(E_DEBUG, "Received %d bytes from %d\n", x, c->fd);
+
+       c->in_bytes += x;
+
+       if (x) {
+               try_rpc_read(c);
+       }
+
+}
+
+static void incr_out_packet_num(struct connection *c)
+{
+       c->out_packet_num++;
+}
+
+static struct tgl_dc *get_dc(struct connection *c)
+{
+       return c->dc;
+}
+
+static struct tgl_session *get_session(struct connection *c)
+{
+       return c->session;
+}
+
+static void tgln_free(struct connection *c)
+{
+       if (c->ip) { tfree_str(c->ip); }
+       struct connection_buffer *b = c->out_head;
+       while(b) {
+               struct connection_buffer *d = b;
+               b = b->next;
+               delete_connection_buffer(d);
+       }
+       b = c->in_head;
+       while(b) {
+               struct connection_buffer *d = b;
+               b = b->next;
+               delete_connection_buffer(d);
+       }
+
+       if(c->ping_ev) {
+               ecore_timer_del(c->ping_ev);
+               c->ping_ev = NULL;
+       }
+       if(c->fail_ev) {
+               ecore_timer_del(c->fail_ev);
+               c->fail_ev = NULL;
+       }
+
+       if(c->read_ev) {
+               ecore_main_fd_handler_del(c->read_ev);
+               c->read_ev = NULL;
+       }
+       if(c->thrd) {
+               ecore_thread_cancel(c->thrd);
+               c->thrd = NULL;
+       }
+
+       if (c->fd >= 0) {
+               Connections[c->fd] = 0; close(c->fd);
+       }
+
+       tfree(c, sizeof(*c));
+}
+
+struct tgl_net_methods tgl_conn_methods = {
+               .write_out = tgln_write_out,
+               .read_in = tgln_read_in,
+               .read_in_lookup = tgln_read_in_lookup,
+               .flush_out = tgln_flush_out,
+               .incr_out_packet_num = incr_out_packet_num,
+               .get_dc = get_dc,
+               .get_session = get_session,
+               .create_connection = tgln_create_connection,
+               .free = tgln_free
+};
diff --git a/tg-engine-service/mtprotocol/tgl-net.h b/tg-engine-service/mtprotocol/tgl-net.h
new file mode 100644 (file)
index 0000000..63e9734
--- /dev/null
@@ -0,0 +1,25 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Vitaly Valtman 2013-2015
+*/
+#ifndef __NET_H__
+#define __NET_H__
+
+extern struct tgl_net_methods tgl_conn_methods;
+
+#endif
diff --git a/tg-engine-service/mtprotocol/tgl-structures.h b/tg-engine-service/mtprotocol/tgl-structures.h
new file mode 100644 (file)
index 0000000..01c42c3
--- /dev/null
@@ -0,0 +1,53 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Vitaly Valtman 2013-2015
+ */
+#ifndef __STRUCTURES_H__
+#define __STRUCTURES_H__
+
+#include <assert.h>
+#include "tgl-layout.h"
+#include "tgl-fetch.h"
+#include "tgl.h"
+
+char *tgls_default_create_print_name(struct tgl_state *TLS, tgl_peer_id_t id, const char *a1, const char *a2, const char *a3, const char *a4);
+void tgls_free_user(struct tgl_state *TLS, struct tgl_user *U);
+void tgls_free_chat(struct tgl_state *TLS, struct tgl_chat *U);
+void tgls_free_photo(struct tgl_state *TLS, struct tgl_photo *P);
+void tgls_free_message(struct tgl_state *TLS, struct tgl_message *M);
+void tgls_clear_message(struct tgl_state *TLS, struct tgl_message *M);
+struct tgl_message *tglm_message_alloc(struct tgl_state *TLS, long long id);
+void tglm_message_insert_tree(struct tgl_state *TLS, struct tgl_message *M);
+void tglm_update_message_id(struct tgl_state *TLS, struct tgl_message *M, long long id);
+void tglm_message_insert(struct tgl_state *TLS, struct tgl_message *M);
+void tglm_message_insert_unsent(struct tgl_state *TLS, struct tgl_message *M);
+void tglm_message_remove_unsent(struct tgl_state *TLS, struct tgl_message *M);
+void tglm_send_all_unsent(struct tgl_state *TLS);
+void tglm_message_remove_tree(struct tgl_state *TLS, struct tgl_message *M);
+void tglm_message_add_peer(struct tgl_state *TLS, struct tgl_message *M);
+void tglm_message_del_peer(struct tgl_state *TLS, struct tgl_message *M);
+void tglm_message_del_use(struct tgl_state *TLS, struct tgl_message *M);
+void tglm_message_add_use(struct tgl_state *TLS, struct tgl_message *M);
+void tglp_peer_insert_name(struct tgl_state *TLS, tgl_peer_t *P);
+void tglp_peer_delete_name(struct tgl_state *TLS, tgl_peer_t *P);
+void tglp_insert_encrypted_chat(struct tgl_state *TLS, tgl_peer_t *P);
+void tglp_insert_user(struct tgl_state *TLS, tgl_peer_t *P);
+void tglp_insert_chat(struct tgl_state *TLS, tgl_peer_t *P);
+enum tgl_typing_status tglf_fetch_typing(void);
+
+#endif
diff --git a/tg-engine-service/mtprotocol/tgl-timers.c b/tg-engine-service/mtprotocol/tgl-timers.c
new file mode 100644 (file)
index 0000000..41e5574
--- /dev/null
@@ -0,0 +1,98 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Vitaly Valtman 2013-2015
+ */
+#include "tgl.h"
+#include <stdlib.h>
+#include <Ecore.h>
+
+#define TIMER_MAX_VALUE 1000
+
+struct timer_context {
+       Ecore_Timer *handler;
+       void *cbdata;
+};
+
+static Eina_Bool timer_alarm(void* arg)
+{
+       struct timer_context *tc = arg;
+       tc->handler = NULL;
+       void **p = tc->cbdata;
+       ((void (*)(struct tgl_state *, void *))p[1])(p[0], p[2]);
+       return ECORE_CALLBACK_CANCEL;
+}
+
+struct tgl_timer *tgl_timer_alloc(struct tgl_state *TLS, void (*cb)(struct tgl_state *TLS, void *arg), void *arg)
+{
+       void **p = malloc (sizeof (void *) * 3);
+       p[0] = TLS;
+       p[1] = cb;
+       p[2] = arg;
+
+       struct timer_context *tc;
+       tc = malloc(sizeof(*tc));
+       if (tc) {
+               tc->handler = NULL;
+               tc->cbdata = (void *)p;
+               return (void *)tc;
+       }
+
+       return NULL;
+}
+
+void tgl_timer_insert(struct tgl_timer *t, double p)
+{
+       if (p <= 0) {
+               p = 0.000001;
+       }
+       struct timer_context *tc = (struct timer_context *)t;
+       tc->handler = ecore_timer_add(p, timer_alarm, tc);
+       if (!tc->handler) {
+               // Something goes wrong
+       }
+       return;
+}
+
+void tgl_timer_delete(struct tgl_timer *t)
+{
+       struct timer_context *tc = (struct timer_context *)t;
+       if (tc->handler) {
+               ecore_timer_del(tc->handler);
+               tc->handler = NULL;
+       }
+}
+
+void tgl_timer_free(struct tgl_timer *t)
+{
+       struct timer_context *tc;
+       tc = (struct timer_context *)t;
+       if (tc->handler) {
+               // Something goes wrong, tgl_timer_delete is not called before.
+               // Exceptional cases.
+               ecore_timer_del(tc->handler);
+       }
+       free(tc->cbdata);
+       free(tc);
+}
+
+struct tgl_timer_methods tgl_libevent_timers = {
+               .alloc = tgl_timer_alloc,
+               .insert = tgl_timer_insert,
+               .remove = tgl_timer_delete,
+               .free = tgl_timer_free
+};
diff --git a/tg-engine-service/mtprotocol/tgl-timers.h b/tg-engine-service/mtprotocol/tgl-timers.h
new file mode 100644 (file)
index 0000000..3174a2c
--- /dev/null
@@ -0,0 +1,28 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Vitaly Valtman 2013-2015
+*/
+
+#ifndef __TGL_TIMERS_H__
+#define __TGL_TIMERS_H__
+
+#include "tgl.h"
+
+extern struct tgl_timer_methods tgl_libevent_timers;
+
+#endif
diff --git a/tg-engine-service/mtprotocol/tgl.c b/tg-engine-service/mtprotocol/tgl.c
new file mode 100644 (file)
index 0000000..e680ad2
--- /dev/null
@@ -0,0 +1,149 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or(at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Vitaly Valtman 2014-2015
+ */
+
+#include "tgl.h"
+#include "tools.h"
+#include "mtproto-client.h"
+#include "tgl-structures.h"
+#include <assert.h>
+
+struct tgl_state tgl_state;
+
+void tgl_set_binlog_mode(struct tgl_state *TLS, int mode)
+{
+       TLS->binlog_enabled = mode;
+}
+
+void tgl_set_binlog_path(struct tgl_state *TLS, const char *path)
+{
+       TLS->binlog_name = tstrdup(path);
+}
+
+void tgl_set_auth_file_path(struct tgl_state *TLS, const char *path)
+{
+       TLS->auth_file = tstrdup(path);
+}
+
+void tgl_set_download_directory(struct tgl_state *TLS, const char *path)
+{
+       TLS->downloads_directory = tstrdup(path);
+}
+
+void tgl_set_callback(struct tgl_state *TLS, struct tgl_update_callback *cb)
+{
+       TLS->callback = *cb;
+}
+
+void tgl_set_rsa_key(struct tgl_state *TLS, const char *key)
+{
+       assert(TLS->rsa_key_num < TGL_MAX_RSA_KEYS_NUM);
+       TLS->rsa_key_list[TLS->rsa_key_num ++] = tstrdup(key);
+}
+
+void tgl_init(struct tgl_state *TLS)
+{
+       assert(TLS->timer_methods);
+       assert(TLS->net_methods);
+       if (!TLS->callback.create_print_name) {
+               TLS->callback.create_print_name = tgls_default_create_print_name;
+       }
+       if (!TLS->temp_key_expire_time) {
+               TLS->temp_key_expire_time = 100000;
+       }
+
+       TLS->message_list.next_use = &TLS->message_list;
+       TLS->message_list.prev_use = &TLS->message_list;
+
+       tglmp_on_start(TLS);
+
+       if (!TLS->app_id) {
+               TLS->app_id = TG_APP_ID;
+               TLS->app_hash = tstrdup(TG_APP_HASH);
+       }
+}
+
+int tgl_authorized_dc(struct tgl_state *TLS, struct tgl_dc *DC)
+{
+       assert(DC);
+       return(DC->flags & 4) != 0;//DC->auth_key_id;
+}
+
+int tgl_signed_dc(struct tgl_state *TLS, struct tgl_dc *DC)
+{
+       assert(DC);
+       return DC->has_auth;
+}
+
+void tgl_register_app_id(struct tgl_state *TLS, int app_id, char *app_hash)
+{
+       TLS->app_id = app_id;
+       TLS->app_hash = tstrdup(app_hash);
+}
+
+struct tgl_state *tgl_state_alloc(void)
+{
+       struct tgl_state *TLS =(struct tgl_state *)malloc(sizeof(*TLS));
+       if (!TLS) { return NULL; }
+       memset(TLS, 0, sizeof(*TLS));
+       return TLS;
+}
+
+void tgl_incr_verbosity(struct tgl_state *TLS)
+{
+       TLS->verbosity ++;
+}
+
+void tgl_set_verbosity(struct tgl_state *TLS, int val)
+{
+       TLS->verbosity = val;
+}
+
+void tgl_enable_pfs(struct tgl_state *TLS)
+{
+       TLS->enable_pfs = 1;
+}
+
+void tgl_set_test_mode(struct tgl_state *TLS)
+{
+       TLS->test_mode ++;
+}
+
+void tgl_set_net_methods(struct tgl_state *TLS, struct tgl_net_methods *methods)
+{
+       TLS->net_methods = methods;
+}
+
+void tgl_set_timer_methods(struct tgl_state *TLS, struct tgl_timer_methods *methods)
+{
+       TLS->timer_methods = methods;
+}
+
+void tgl_set_app_version(struct tgl_state *TLS, const char *app_version)
+{
+       if (TLS->app_version) {
+               tfree_str(TLS->app_version);
+       }
+       TLS->app_version = tstrdup(app_version);
+}
+
+void tgl_enable_ipv6(struct tgl_state *TLS)
+{
+       TLS->ipv6_enabled = 1;
+}
diff --git a/tg-engine-service/mtprotocol/tgl.h b/tg-engine-service/mtprotocol/tgl.h
new file mode 100644 (file)
index 0000000..afbea12
--- /dev/null
@@ -0,0 +1,370 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or(at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Vitaly Valtman 2014-2015
+*/
+#ifndef __TGL_H__
+#define __TGL_H__
+
+#include "tgl-layout.h"
+#include <string.h>
+#include <stdlib.h>
+
+#define TGL_MAX_DC_NUM 100
+#define TG_SERVER_1 "149.154.175.50"
+#define TG_SERVER_2 "149.154.167.51"
+#define TG_SERVER_3 "174.140.142.6"
+#define TG_SERVER_4 "149.154.167.91"
+#define TG_SERVER_5 "149.154.171.5"
+
+#define TG_SERVER_IPV6_1 "2001:b28:f23d:f001::a"
+#define TG_SERVER_IPV6_2 "2001:67c:4e8:f002::a"
+#define TG_SERVER_IPV6_3 "2001:b28:f23d:f003::a"
+#define TG_SERVER_IPV6_4 "2001:67c:4e8:f004::a"
+#define TG_SERVER_IPV6_5 "2001:b28:f23f:f005::a"
+#define TG_SERVER_DEFAULT 2
+
+#define TG_SERVER_TEST_1 "173.240.5.253"
+#define TG_SERVER_TEST_2 "149.154.167.40"
+#define TG_SERVER_TEST_3 "174.140.142.5"
+#define TG_SERVER_TEST_IPV6_1 "2001:b28:f23d:f001::e"
+#define TG_SERVER_TEST_IPV6_2 "2001:67c:4e8:f002::e"
+#define TG_SERVER_TEST_IPV6_3 "2001:b28:f23d:f003::e"
+#define TG_SERVER_TEST_DEFAULT 2
+
+// JUST RANDOM STRING
+#define TGL_BUILD "7832"
+#define TGL_VERSION "1.2.0"
+
+#define TGL_ENCRYPTED_LAYER 17
+#define TGL_SCHEME_LAYER 22
+
+struct connection;
+struct mtproto_methods;
+struct tgl_session;
+struct tgl_dc;
+
+#define TGL_GROUP_CHAT_CREATED 2065
+
+#define TGL_UPDATE_CREATED 1
+#define TGL_UPDATE_DELETED 2
+#define TGL_UPDATE_PHONE 4
+#define TGL_UPDATE_CONTACT 8
+#define TGL_UPDATE_PHOTO 16
+#define TGL_UPDATE_BLOCKED 32
+#define TGL_UPDATE_REAL_NAME 64
+#define TGL_UPDATE_NAME 128
+#define TGL_UPDATE_REQUESTED 256
+#define TGL_UPDATE_WORKING 512
+#define TGL_UPDATE_FLAGS 1024
+#define TGL_UPDATE_TITLE 2048
+#define TGL_UPDATE_ADMIN 4096
+#define TGL_UPDATE_MEMBERS 8192
+#define TGL_UPDATE_ACCESS_HASH 16384
+#define TGL_UPDATE_USERNAME (1 << 15)
+
+struct tgl_allocator {
+  void *(*alloc)(size_t size);
+  void *(*realloc)(void *ptr, size_t old_size, size_t size);
+  void(*free)(void *ptr, int size);
+  void(*check)(void);
+  void(*exists)(void *ptr, int size);
+};
+
+extern struct tgl_allocator tgl_allocator_release;
+extern struct tgl_allocator tgl_allocator_debug;
+struct tgl_state;
+
+struct tgl_update_callback {
+  void(*new_msg)(struct tgl_state *TLS, struct tgl_message *M);
+  void(*marked_read)(struct tgl_state *TLS, int num, struct tgl_message *list[]);
+  void(*logprintf)(const char *format, ...)  __attribute__((format(printf, 1, 2)));
+  void(*get_string)(struct tgl_state *TLS, const char *prompt, int flags, void(*callback)(struct tgl_state *TLS, char *string, void *arg), void *arg);
+  void(*logged_in)(struct tgl_state *TLS);
+  void(*started)(struct tgl_state *TLS);
+  void(*type_notification)(struct tgl_state *TLS, struct tgl_user *U, enum tgl_typing_status status);
+  void(*type_in_chat_notification)(struct tgl_state *TLS, struct tgl_user *U, struct tgl_chat *C, enum tgl_typing_status status);
+  void(*type_in_secret_chat_notification)(struct tgl_state *TLS, struct tgl_secret_chat *E);
+  void(*status_notification)(struct tgl_state *TLS, struct tgl_user *U);
+  void(*user_registered)(struct tgl_state *TLS, struct tgl_user *U);
+  void(*user_activated)(struct tgl_state *TLS, struct tgl_user *U);
+  void(*new_authorization)(struct tgl_state *TLS, const char *device, const char *location);
+  void(*chat_update)(struct tgl_state *TLS, struct tgl_chat *C, unsigned flags);
+  void(*user_update)(struct tgl_state *TLS, struct tgl_user *C, unsigned flags);
+  void(*secret_chat_update)(struct tgl_state *TLS, struct tgl_secret_chat *C, unsigned flags);
+  void(*msg_receive)(struct tgl_state *TLS, struct tgl_message *M);
+  void(*our_id)(struct tgl_state *TLS, int id);
+  void(*notification)(struct tgl_state *TLS, char *type, char *message);
+  void(*user_status_update)(struct tgl_state *TLS, struct tgl_user *U);
+  char *(*create_print_name)(struct tgl_state *TLS, tgl_peer_id_t id, const char *a1, const char *a2, const char *a3, const char *a4);
+};
+
+struct tgl_net_methods {
+  int(*write_out)(struct connection *c, const void *data, int len);
+  int(*read_in)(struct connection *c, void *data, int len);
+  int(*read_in_lookup)(struct connection *c, void *data, int len);
+  void(*flush_out)(struct connection *c);
+  void(*incr_out_packet_num)(struct connection *c);
+  void(*free)(struct connection *c);
+  struct tgl_dc *(*get_dc)(struct connection *c);
+  struct tgl_session *(*get_session)(struct connection *c);
+  struct connection *(*create_connection)(struct tgl_state *TLS, const char *host, int port, struct tgl_session *session, struct tgl_dc *dc, struct mtproto_methods *methods);
+};
+
+struct mtproto_methods {
+  int(*ready)(struct tgl_state *TLS, struct connection *c);
+  int(*close)(struct tgl_state *TLS, struct connection *c);
+  int(*execute)(struct tgl_state *TLS, struct connection *c, int op, int len);
+};
+
+struct tgl_timer;
+
+struct tgl_timer_methods {
+  struct tgl_timer *(*alloc)(struct tgl_state *TLS, void(*cb)(struct tgl_state *TLS, void *arg), void *arg);
+  void(*insert)(struct tgl_timer *t, double timeout);
+  void(*remove)(struct tgl_timer *t);
+  void(*free)(struct tgl_timer *t);
+};
+
+#define E_ERROR 0
+#define E_WARNING 1
+#define E_NOTICE 2
+#define E_DEBUG 6
+
+#define TGL_LOCK_DIFF 1
+#define TGL_LOCK_PASSWORD 2
+
+#define TGL_MAX_RSA_KEYS_NUM 10
+// Do not modify this structure, unless you know what you do
+
+#pragma pack(push,4)
+struct tgl_state {
+  int our_id; // ID of logged in user
+  int encr_root;
+  unsigned char *encr_prime;
+  void *encr_prime_bn;
+  int encr_param_version;
+  int pts;
+  int qts;
+  int date;
+  int seq;
+  int binlog_enabled;
+  int test_mode; 
+  int verbosity;
+  int unread_messages;
+  int active_queries;
+  int max_msg_id;
+  int started;
+  long long locks; 
+  struct tgl_dc *DC_list[TGL_MAX_DC_NUM];
+  struct tgl_dc *DC_working;
+  int max_dc_num;
+  int dc_working_num;
+  int enable_pfs;
+  int temp_key_expire_time;
+  long long cur_uploading_bytes;
+  long long cur_uploaded_bytes;
+  long long cur_downloading_bytes;
+  long long cur_downloaded_bytes;
+  char *binlog_name;
+  char *auth_file;
+  char *downloads_directory;
+  struct tgl_update_callback callback;
+  struct tgl_net_methods *net_methods;
+  char *rsa_key_list[TGL_MAX_RSA_KEYS_NUM];
+  void *rsa_key_loaded[TGL_MAX_RSA_KEYS_NUM];
+  long long rsa_key_fingerprint[TGL_MAX_RSA_KEYS_NUM];
+  int rsa_key_num;
+  struct bignum_ctx *BN_ctx;
+  struct tgl_allocator allocator;
+  struct tree_peer *peer_tree;
+  struct tree_peer_by_name *peer_by_name_tree;
+  struct tree_message *message_tree;
+  struct tree_message *message_unsent_tree;
+  int users_allocated;
+  int chats_allocated;
+  int messages_allocated;
+  int peer_num;
+  int peer_size;
+  int encr_chats_allocated;
+  int geo_chats_allocated;
+  tgl_peer_t **Peers;
+  struct tgl_message message_list;
+  int binlog_fd;
+  struct tgl_timer_methods *timer_methods;
+  struct tree_query *queries_tree;
+  char *base_path;
+  struct tree_user *online_updates;
+  struct tgl_timer *online_updates_timer;
+  int app_id;
+  char *app_hash;
+  void *ev_login;
+  char *app_version;
+  int ipv6_enabled;
+};
+#pragma pack(pop)
+
+void tgl_reopen_binlog_for_writing(struct tgl_state *TLS);
+void tgl_replay_log(struct tgl_state *TLS);
+
+int tgl_print_stat(struct tgl_state *TLS, char *s, int len);
+tgl_peer_t *tgl_peer_get(struct tgl_state *TLS, tgl_peer_id_t id);
+tgl_peer_t *tgl_peer_get_by_name(struct tgl_state *TLS, const char *s);
+
+struct tgl_message *tgl_message_get(struct tgl_state *TLS, long long id);
+void tgl_peer_iterator_ex(struct tgl_state *TLS, void(*it)(tgl_peer_t *P, void *extra), void *extra);
+
+int tgl_complete_user_list(struct tgl_state *TLS, int index, const char *text, int len, char **R);
+int tgl_complete_chat_list(struct tgl_state *TLS, int index, const char *text, int len, char **R);
+int tgl_complete_encr_chat_list(struct tgl_state *TLS, int index, const char *text, int len, char **R);
+int tgl_complete_peer_list(struct tgl_state *TLS, int index, const char *text, int len, char **R);
+int tgl_secret_chat_for_user(struct tgl_state *TLS, tgl_peer_id_t user_id);
+
+#define TGL_PEER_USER 1
+#define TGL_PEER_CHAT 2
+#define TGL_PEER_GEO_CHAT 3
+#define TGL_PEER_ENCR_CHAT 4
+#define TGL_PEER_UNKNOWN 0
+
+#define TGL_MK_USER(id) tgl_set_peer_id(TGL_PEER_USER,id)
+#define TGL_MK_CHAT(id) tgl_set_peer_id(TGL_PEER_CHAT,id)
+#define TGL_MK_GEO_CHAT(id) tgl_set_peer_id(TGL_PEER_GEO_CHAT,id)
+#define TGL_MK_ENCR_CHAT(id) tgl_set_peer_id(TGL_PEER_ENCR_CHAT,id)
+
+void tgl_set_binlog_mode(struct tgl_state *TLS, int mode);
+void tgl_set_binlog_path(struct tgl_state *TLS, const char *path);
+void tgl_set_auth_file_path(struct tgl_state *TLS, const char *path);
+void tgl_set_download_directory(struct tgl_state *TLS, const char *path);
+void tgl_set_callback(struct tgl_state *TLS, struct tgl_update_callback *cb);
+void tgl_set_rsa_key(struct tgl_state *TLS, const char *key);
+void tgl_set_app_version(struct tgl_state *TLS, const char *app_version);
+
+static inline int tgl_get_peer_type(tgl_peer_id_t id)
+{
+  return id.type;
+}
+
+static inline int tgl_get_peer_id(tgl_peer_id_t id)
+{
+  return id.id;
+}
+
+static inline tgl_peer_id_t tgl_set_peer_id(int type, int id)
+{
+  tgl_peer_id_t ID;
+  ID.id = id;
+  ID.type = type;
+  return ID;
+}
+
+static inline int tgl_cmp_peer_id(tgl_peer_id_t a, tgl_peer_id_t b)
+{
+  return memcmp(&a, &b, sizeof(a));
+}
+
+void tgl_incr_verbosity(struct tgl_state *TLS);
+void tgl_set_verbosity(struct tgl_state *TLS, int val);
+void tgl_enable_pfs(struct tgl_state *TLS);
+void tgl_set_test_mode(struct tgl_state *TLS);
+void tgl_set_net_methods(struct tgl_state *TLS, struct tgl_net_methods *methods);
+void tgl_set_timer_methods(struct tgl_state *TLS, struct tgl_timer_methods *methods);
+
+//struct pollfd;
+//int tgl_connections_make_poll_array(struct tgl_state *TLS, struct pollfd *fds, int max);
+//void tgl_connections_poll_result(struct tgl_state *TLS, struct pollfd *fds, int max);
+
+void tgl_do_help_get_config(struct tgl_state *TLS, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra);
+void tgl_do_send_code(struct tgl_state *TLS, const char *user, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, int registered, const char *hash), void *callback_extra);
+void tgl_do_phone_call(struct tgl_state *TLS, const char *user, const char *hash, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra);
+int tgl_do_send_code_result(struct tgl_state *TLS, const char *user, const char *hash, const char *code, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *Self), void *callback_extra) ;
+int tgl_do_send_code_result_auth(struct tgl_state *TLS, const char *user, const char *hash, const char *code, const char *first_name, const char *last_name, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *Self), void *callback_extra);
+void tgl_do_update_contact_list(struct tgl_state *TLS, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, struct tgl_user *contacts[]), void *callback_extra);
+void tgl_do_send_message(struct tgl_state *TLS, tgl_peer_id_t id, const char *msg, int len, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+void tgl_do_send_msg(struct tgl_state *TLS, struct tgl_message *M, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+void tgl_do_send_text(struct tgl_state *TLS, tgl_peer_id_t id, char *file, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+void tgl_do_mark_read(struct tgl_state *TLS, tgl_peer_id_t id, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra);
+void tgl_do_get_history(struct tgl_state *TLS, tgl_peer_id_t id, int limit, int offline_mode, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, struct tgl_message *list[]), void *callback_extra);
+void tgl_do_get_history_ext(struct tgl_state *TLS, tgl_peer_id_t id, int offset, int limit, int offline_mode, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, struct tgl_message *list[]), void *callback_extra);
+void tgl_do_get_dialog_list(struct tgl_state *TLS, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, tgl_peer_id_t peers[], int last_msg_id[], int unread_count[]), void *callback_extra);
+void tgl_do_send_photo(struct tgl_state *TLS, enum tgl_message_media_type type, tgl_peer_id_t to_id, char *file_name, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+void tgl_do_send_document(struct tgl_state *TLS, int flags, tgl_peer_id_t to_id, char *file_name, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+void tgl_do_set_chat_photo(struct tgl_state *TLS, tgl_peer_id_t chat_id, char *file_name, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+void tgl_do_set_profile_photo(struct tgl_state *TLS, char *file_name, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra);
+void tgl_do_set_profile_name(struct tgl_state *TLS, char *first_name, char *last_name, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *U), void *callback_extra);
+void tgl_do_set_username(struct tgl_state *TLS, char *name, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *U), void *callback_extra);
+void tgl_do_forward_message(struct tgl_state *TLS, tgl_peer_id_t id, int n, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+void tgl_do_rename_chat(struct tgl_state *TLS, tgl_peer_id_t id, char *name, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+void tgl_do_get_chat_info(struct tgl_state *TLS, tgl_peer_id_t id, int offline_mode, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_chat *C), void *callback_extra);
+void tgl_do_get_user_info(struct tgl_state *TLS, tgl_peer_id_t id, int offline_mode, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *U), void *callback_extra);
+void tgl_do_load_photo(struct tgl_state *TLS, struct tgl_photo *photo, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, char *filename), void *callback_extra);
+void tgl_do_set_password(struct tgl_state *TLS, char *hint, void(*callback)(struct tgl_state *TLS, void *extra, int success), void *extra);
+void tgl_do_check_password(struct tgl_state *TLS, void(*callback)(struct tgl_state *TLS, void *extra, int success), void *callback_extra);
+void tgl_do_load_encr_document(struct tgl_state *TLS, struct tgl_encr_document *V, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, char *filename), void *callback_extra);
+void tgl_do_load_document(struct tgl_state *TLS, struct tgl_document *V, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, char *filename), void *callback_extra);
+void tgl_do_load_document_thumb(struct tgl_state *TLS, struct tgl_document *video, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, char *filename), void *callback_extra);
+void tgl_do_export_auth(struct tgl_state *TLS, int num, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra);
+void tgl_do_add_contact(struct tgl_state *TLS, const char *phone, int phone_len, const char *first_name, int first_name_len, const char *last_name, int last_name_len, int force, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, struct tgl_user *users[]), void *callback_extra);
+void tgl_do_msg_search(struct tgl_state *TLS, tgl_peer_id_t id, int from, int to, int limit, int offset, const char *s, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, struct tgl_message *list[]), void *callback_extra);
+//void tgl_do_contacts_search(int limit, const char *s, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, struct tgl_user *users[]), void *callback_extra);
+void tgl_do_create_encr_chat_request(struct tgl_state *TLS, int user_id, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_secret_chat *E), void *callback_extra);
+void tgl_do_create_secret_chat(struct tgl_state *TLS, tgl_peer_id_t id, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_secret_chat *E), void *callback_extra);
+void tgl_do_accept_encr_chat_request(struct tgl_state *TLS, struct tgl_secret_chat *E, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_secret_chat *E), void *callback_extra);
+void tgl_do_get_difference(struct tgl_state *TLS, int sync_from_start, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra);
+void tgl_do_lookup_state(struct tgl_state *TLS);
+void tgl_do_add_user_to_chat(struct tgl_state *TLS, tgl_peer_id_t chat_id, tgl_peer_id_t id, int limit, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+void tgl_do_del_user_from_chat(struct tgl_state *TLS, tgl_peer_id_t chat_id, tgl_peer_id_t id, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+void tgl_do_create_group_chat(struct tgl_state *TLS, tgl_peer_id_t id, char *chat_topic, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+void tgl_do_create_group_chat_ex(struct tgl_state *TLS, int users_num, tgl_peer_id_t ids[], char *chat_topic, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+void tgl_do_delete_msg(struct tgl_state *TLS, long long id, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra);
+void tgl_do_restore_msg(struct tgl_state *TLS, long long id, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra);
+void tgl_do_update_status(struct tgl_state *TLS, int online, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra);
+void tgl_do_help_get_config_dc(struct tgl_state *TLS, struct tgl_dc *D, void(*callback)(struct tgl_state *TLS, void *, int), void *callback_extra);
+void tgl_do_export_card(struct tgl_state *TLS, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, int size, int *card), void *callback_extra);
+void tgl_do_import_card(struct tgl_state *TLS, int size, int *card, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *U), void *callback_extra);
+void tgl_do_send_contact(struct tgl_state *TLS, tgl_peer_id_t id, const char *phone, int phone_len, const char *first_name, int first_name_len, const char *last_name, int last_name_len, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+void tgl_do_forward_media(struct tgl_state *TLS, tgl_peer_id_t id, int n, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+void tgl_do_del_contact(struct tgl_state *TLS, tgl_peer_id_t id, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra);
+void tgl_do_set_encr_chat_ttl(struct tgl_state *TLS, struct tgl_secret_chat *E, int ttl, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+void tgl_do_send_location(struct tgl_state *TLS, tgl_peer_id_t id, double latitude, double longitude, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M), void *callback_extra);
+void tgl_do_contact_search(struct tgl_state *TLS, char *name, int limit, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, int cnt, struct tgl_user *U[]), void *callback_extra);
+void tgl_do_request_exchange(struct tgl_state *TLS, struct tgl_secret_chat *E);
+void tgl_do_send_typing(struct tgl_state *TLS, tgl_peer_id_t id, enum tgl_typing_status status, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success), void *callback_extra);
+void tgl_do_send_broadcast(struct tgl_state *TLS, int num, tgl_peer_id_t id[], const char *text, int text_len, void(*callback)(struct tgl_state *TLS, void *extra, int success, int num, struct tgl_message *ML[]), void *callback_extra);
+void tgl_do_visualize_key(struct tgl_state *TLS, tgl_peer_id_t id, unsigned char buf[16]);
+void tgl_do_send_ping(struct tgl_state *TLS, struct connection *c);
+void tgl_do_send_extf(struct tgl_state *TLS, char *data, int data_len, void(*callback)(struct tgl_state *TLS, void *callback_extra, int success, char *data), void *callback_extra);
+int tgl_authorized_dc(struct tgl_state *TLS, struct tgl_dc *DC);
+int tgl_signed_dc(struct tgl_state *TLS, struct tgl_dc *DC);
+//void tgl_do_get_suggested(void);
+void tgl_do_create_keys_end(struct tgl_state *TLS, struct tgl_secret_chat *U);
+void tgl_do_send_encr_chat_layer(struct tgl_state *TLS, struct tgl_secret_chat *E);
+void tgl_init(struct tgl_state *TLS);
+void tgl_dc_authorize(struct tgl_state *TLS, struct tgl_dc *DC);
+void tgl_dc_iterator(struct tgl_state *TLS, void(*iterator)(struct tgl_dc *DC));
+void tgl_dc_iterator_ex(struct tgl_state *TLS, void(*iterator)(struct tgl_dc *DC, void *extra), void *extra);
+double tglt_get_double_time(void);
+void tgl_insert_empty_user(struct tgl_state *TLS, int id);
+void tgl_insert_empty_chat(struct tgl_state *TLS, int id);
+int tglf_extf_autocomplete(struct tgl_state *TLS, const char *text, int text_len, int index, char **R, char *data, int data_len);
+struct paramed_type *tglf_extf_store(struct tgl_state *TLS, const char *data, int data_len);
+char *tglf_extf_fetch(struct tgl_state *TLS, struct paramed_type *T);
+void tgl_free_all(struct tgl_state *TLS);
+void tgl_register_app_id(struct tgl_state *TLS, int app_id, char *app_hash);
+void tgl_login(struct tgl_state *TLS);
+void tgl_enable_ipv6(struct tgl_state *TLS);
+struct tgl_state *tgl_state_alloc(void);
+#endif
diff --git a/tg-engine-service/mtprotocol/tools.c b/tg-engine-service/mtprotocol/tools.c
new file mode 100644 (file)
index 0000000..68f3e9c
--- /dev/null
@@ -0,0 +1,312 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or(at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Vitaly Valtman 2013-2015
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#define _GNU_SOURCE
+
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <openssl/err.h>
+#include <openssl/rand.h>
+#include <zlib.h>
+#include <time.h>
+#include <sys/time.h>
+#include "tools.h"
+
+#ifdef __MACH__
+#include <mach/clock.h>
+#include <mach/mach.h>
+#endif
+
+#ifdef __MACH__
+#define CLOCK_REALTIME 0
+#define CLOCK_MONOTONIC 1
+#endif
+
+#define RES_PRE 8
+#define RES_AFTER 8
+#define MAX_BLOCKS 1000000
+static void *blocks[MAX_BLOCKS];
+static void *free_blocks[MAX_BLOCKS];
+static int used_blocks;
+static int free_blocks_cnt;
+static long long total_allocated_bytes;
+
+void logprintf(const char *format, ...) __attribute__((format(printf, 1, 2), weak));
+
+void logprintf(const char *format, ...)
+{
+       va_list ap;
+       va_start(ap, format);
+       vfprintf(stdout, format, ap);
+       va_end(ap);
+}
+
+int tgl_snprintf(char *buf, int len, const char *format, ...)
+{
+       va_list ap;
+       va_start(ap, format);
+       int r = vsnprintf(buf, len, format, ap);
+       va_end(ap);
+       assert(r <= len && "tsnprintf buffer overflow");
+       return r;
+}
+
+int tgl_asprintf(char **res, const char *format, ...)
+{
+       va_list ap;
+       va_start(ap, format);
+       int r = vasprintf(res, format, ap);
+       assert(r >= 0);
+       va_end(ap);
+       void *rs = talloc(strlen(*res) + 1);
+       memcpy(rs, *res, strlen(*res) + 1);
+       free(*res);
+       *res = rs;
+       return r;
+}
+
+void tgl_free_debug(void *ptr, int size __attribute__((unused)))
+{
+       total_allocated_bytes -= size;
+       ptr -= RES_PRE;
+       if (size !=(int)((*(int *)ptr) ^ 0xbedabeda)) {
+               logprintf("size = %d, ptr = %d\n", size,(*(int *)ptr) ^ 0xbedabeda);
+       }
+       assert(*(int *)ptr ==(int)((size) ^ 0xbedabeda));
+       assert(*(int *)(ptr + RES_PRE + size) ==(int)((size) ^ 0x7bed7bed));
+       assert(*(int *)(ptr + 4) == size);
+       int block_num = *(int *)(ptr + 4 + RES_PRE + size);
+       if (block_num >= used_blocks) {
+               logprintf("block_num = %d, used = %d\n", block_num, used_blocks);
+       }
+       assert(block_num < used_blocks);
+       if (block_num < used_blocks - 1) {
+               void *p = blocks[used_blocks - 1];
+               int s =(*(int *)p) ^ 0xbedabeda;
+               *(int *)(p + 4 + RES_PRE + s) = block_num;
+               blocks[block_num] = p;
+       }
+       blocks[--used_blocks] = 0;
+       memset(ptr, 0, size + RES_PRE + RES_AFTER);
+       *(int *)ptr = size + 12;
+       free_blocks[free_blocks_cnt ++] = ptr;
+}
+
+void tgl_free_release(void *ptr, int size)
+{
+       free(ptr);
+}
+
+void *tgl_realloc_debug(void *ptr, size_t old_size __attribute__((unused)), size_t size)
+{
+       void *p = talloc(size);
+       memcpy(p, ptr, size >= old_size ? old_size : size);
+       tfree(ptr, old_size);
+       return p;
+}
+
+void *tgl_realloc_release(void *ptr, size_t old_size __attribute__((unused)), size_t size)
+{
+       void *p = realloc(ptr, size);
+       ensure_ptr(p);
+       return p;
+}
+
+void *tgl_alloc_debug(size_t size)
+{
+       total_allocated_bytes += size;
+       void *p = malloc(size + RES_PRE + RES_AFTER);
+       ensure_ptr(p);
+       *(int *)p = size ^ 0xbedabeda;
+       *(int *)(p + 4) = size;
+       *(int *)(p + RES_PRE + size) = size ^ 0x7bed7bed;
+       *(int *)(p + RES_AFTER + 4 + size) = used_blocks;
+       blocks[used_blocks ++] = p;
+
+       if (used_blocks - 1 == 24867) {
+               assert(0);
+       }
+       tcheck();
+       return p + 8;
+}
+
+void *tgl_alloc_release(size_t size)
+{
+       void *p = malloc(size);
+       ensure_ptr(p);
+       return p;
+}
+
+void *tgl_alloc0(size_t size)
+{
+       void *p = talloc(size);
+       memset(p, 0, size);
+       return p;
+}
+
+char *tgl_strdup(const char *s)
+{
+       int l = strlen(s);
+       char *p = talloc(l + 1);
+       memcpy(p, s, l + 1);
+       return p;
+}
+
+char *tgl_strndup(const char *s, size_t n)
+{
+       size_t l = 0;
+       for (l = 0; l < n && s[l]; l++) { }
+       char *p = talloc(l + 1);
+       memcpy(p, s, l);
+       p[l] = 0;
+       return p;
+}
+
+int tgl_inflate(void *input, int ilen, void *output, int olen)
+{
+       z_stream strm;
+       memset(&strm, 0, sizeof(strm));
+       assert(inflateInit2(&strm, 16 + MAX_WBITS) == Z_OK);
+       strm.avail_in = ilen;
+       strm.next_in = input;
+       strm.avail_out = olen ;
+       strm.next_out = output;
+       int err = inflate(&strm, Z_FINISH);
+       int total_out = strm.total_out;
+
+       if (err != Z_OK && err != Z_STREAM_END) {
+               logprintf( "inflate error = %d\n", err);
+               logprintf( "inflated %d bytes\n",(int) strm.total_out);
+               total_out = 0;
+       }
+       inflateEnd(&strm);
+       return total_out;
+}
+
+void tgl_check_debug(void)
+{
+       int i;
+       for (i = 0; i < used_blocks; i++) {
+               void *ptr = blocks[i];
+               int size =(*(int *)ptr) ^ 0xbedabeda;
+               if (!(*(int *)(ptr + 4) == size) ||
+                               !(*(int *)(ptr + RES_PRE + size) ==(size ^ 0x7bed7bed)) ||
+                               !(*(int *)(ptr + RES_PRE + 4 + size) == i)) {
+                       logprintf("Bad block at address %p(size %d, num %d)\n", ptr, size, i);
+                       assert(0 && "Bad block");
+               }
+       }
+       for (i = 0; i < free_blocks_cnt; i++) {
+               void *ptr = free_blocks[i];
+               int l = *(int *)ptr;
+               int j = 0;
+               for (j = 0; j < l; j++) {
+                       if (*(char *)(ptr + 4 + j)) {
+                               hexdump(ptr + 8, ptr + 8 + l +((-l) & 3));
+                               logprintf("Used freed memory size = %d. ptr = %p\n", l + 4 - RES_PRE - RES_AFTER, ptr);
+                               assert(0);
+                       }
+               }
+       }
+}
+
+void tgl_exists_debug(void *ptr, int size)
+{
+       ptr -= RES_PRE;
+       if (size !=(int)((*(int *)ptr) ^ 0xbedabeda)) {
+               logprintf("size = %d, ptr = %d\n", size,(*(int *)ptr) ^ 0xbedabeda);
+       }
+       assert(*(int *)ptr ==(int)((size) ^ 0xbedabeda));
+       assert(*(int *)(ptr + RES_PRE + size) ==(int)((size) ^ 0x7bed7bed));
+       assert(*(int *)(ptr + 4) == size);
+       int block_num = *(int *)(ptr + 4 + RES_PRE + size);
+       if (block_num >= used_blocks) {
+               logprintf("block_num = %d, used = %d\n", block_num, used_blocks);
+       }
+       assert(block_num < used_blocks);
+}
+
+void tgl_exists_release(void *ptr, int size)
+{
+
+}
+
+void tgl_check_release(void)
+{
+
+}
+
+void tgl_my_clock_gettime(int clock_id, struct timespec *T)
+{
+#ifdef __MACH__
+       // We are ignoring MONOTONIC and hope time doesn't go back too often
+       clock_serv_t cclock;
+       mach_timespec_t mts;
+       host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock);
+       clock_get_time(cclock, &mts);
+       mach_port_deallocate(mach_task_self(), cclock);
+       T->tv_sec = mts.tv_sec;
+       T->tv_nsec = mts.tv_nsec;
+#else
+       assert(clock_gettime(clock_id, T) >= 0);
+#endif
+}
+
+double tglt_get_double_time(void)
+{
+       struct timespec tv;
+       tgl_my_clock_gettime(CLOCK_REALTIME, &tv);
+       return tv.tv_sec + 1e-9 * tv.tv_nsec;
+}
+
+void tglt_secure_random(void *s, int l)
+{
+       if (RAND_bytes(s, l) <= 0) {
+               /*if (allow_weak_random) {
+      RAND_pseudo_bytes(s, l);
+    } else {*/
+               assert(0 && "End of random. If you want, you can start with -w");
+               //}
+       }
+}
+
+struct tgl_allocator tgl_allocator_debug = {
+               .alloc = tgl_alloc_debug,
+               .realloc = tgl_realloc_debug,
+               .free = tgl_free_debug,
+               .check = tgl_check_debug,
+               .exists = tgl_exists_debug
+};
+
+struct tgl_allocator tgl_allocator_release = {
+               .alloc = tgl_alloc_release,
+               .realloc = tgl_realloc_release,
+               .free = tgl_free_release,
+               .check = tgl_check_release,
+               .exists = tgl_exists_release
+};
+
+struct tgl_allocator *tgl_allocator = &tgl_allocator_release;
diff --git a/tg-engine-service/mtprotocol/tools.h b/tg-engine-service/mtprotocol/tools.h
new file mode 100644 (file)
index 0000000..f3c3feb
--- /dev/null
@@ -0,0 +1,124 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or(at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Vitaly Valtman 2013-2015
+ */
+
+#ifndef __TOOLS_H__
+#define __TOOLS_H__
+#include <time.h>
+#include <openssl/err.h>
+#include <assert.h>
+#include "tgl.h"
+
+#define talloc tgl_allocator->alloc
+#define talloc0 tgl_alloc0
+#define tfree tgl_allocator->free 
+#define tfree_str tgl_free_str
+#define tfree_secure tgl_free_secure
+#define trealloc tgl_allocator->realloc
+#define tcheck tgl_allocator->check
+#define texists tgl_allocator->exists
+#define tstrdup tgl_strdup
+#define tstrndup tgl_strndup
+#define tasprintf tgl_asprintf
+#define tsnprintf tgl_snprintf
+
+
+struct tgl_allocator *tgl_allocator;
+double tglt_get_double_time(void);
+
+int tgl_inflate(void *input, int ilen, void *output, int olen);
+//void ensure(int r);
+//void ensure_ptr(void *p);
+
+static inline void out_of_memory(void)
+{
+       fprintf(stderr, "Out of memory\n");
+       exit(1);
+}
+
+static inline void ensure(int r)
+{
+       if (!r) {
+               fprintf(stderr, "Open SSL error\n");
+               ERR_print_errors_fp(stderr);
+               assert(0);
+       }
+}
+
+static inline void ensure_ptr(void *p)
+{
+       if (p == NULL) {
+               out_of_memory();
+       }
+}
+
+void *tgl_alloc_debug(size_t size);
+void *tgl_alloc_release(size_t size);
+void *tgl_realloc_debug(void *ptr, size_t old_size, size_t size);
+void *tgl_realloc_release(void *ptr, size_t old_size, size_t size);
+void *tgl_alloc0(size_t size);
+char *tgl_strdup(const char *s);
+char *tgl_strndup(const char *s, size_t n);
+void tgl_free_debug(void *ptr, int size);
+void tgl_free_release(void *ptr, int size);
+//void tgl_free_str(void *ptr);
+//void tgl_free_secure(void *ptr, int size);
+void tgl_check_debug(void);
+void tgl_exists_debug(void *ptr, int size);
+void tgl_check_release(void);
+void tgl_exists_release(void *ptr, int size);
+int tgl_snprintf(char *buf, int len, const char *format, ...) __attribute__((format(printf, 3, 4)));
+int tgl_asprintf(char **res, const char *format, ...) __attribute__((format(printf, 2, 3)));
+void tglt_secure_random(void *s, int l);
+void tgl_my_clock_gettime(int clock_id, struct timespec *T);
+
+
+static inline void tgl_free_str(void *ptr)
+{
+       if (!ptr) {
+               return;
+       }
+       tfree(ptr, strlen(ptr) + 1);
+}
+
+static inline void tgl_free_secure(void *ptr, int size)
+{
+       memset(ptr, 0, size);
+       tfree(ptr, size);
+}
+
+static inline void hexdump(void *ptr, void *end_ptr)
+{
+       int total = 0;
+       while (ptr < end_ptr) {
+               fprintf(stderr, "%02x",(int)*(unsigned char *)ptr);
+               ptr ++;
+               total ++;
+               if (total == 16) {
+                       fprintf(stderr, "\n");
+                       total = 0;
+               }
+       }
+       if (total) {
+               fprintf(stderr, "\n");
+       }
+}
+
+
+#endif
diff --git a/tg-engine-service/mtprotocol/tree.h b/tg-engine-service/mtprotocol/tree.h
new file mode 100644 (file)
index 0000000..0a9be83
--- /dev/null
@@ -0,0 +1,179 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Vitaly Valtman 2013-2015
+ */
+#ifndef __TREE_H__
+#define __TREE_H__
+#include <stdio.h>
+
+#include <memory.h>
+#include <assert.h>
+#include "tools.h"
+
+#pragma pack(push,4)
+#define DEFINE_TREE(X_NAME, X_TYPE, X_CMP, X_UNSET) \
+               struct tree_ ## X_NAME { \
+       struct tree_ ## X_NAME *left, *right;\
+       X_TYPE x;\
+       int y;\
+};\
+\
+static struct tree_ ## X_NAME *new_tree_node_ ## X_NAME (X_TYPE x, int y) {\
+       struct tree_ ## X_NAME *T = talloc (sizeof (*T));\
+       T->x = x;\
+       T->y = y;\
+       T->left = T->right = 0;\
+       return T;\
+}\
+\
+static void delete_tree_node_ ## X_NAME (struct tree_ ## X_NAME *T) {\
+       tfree (T, sizeof (*T));\
+}\
+\
+static void tree_split_ ## X_NAME (struct tree_ ## X_NAME *T, X_TYPE x, struct tree_ ## X_NAME **L, struct tree_ ## X_NAME **R) {\
+       if (!T) {\
+               *L = *R = 0;\
+       } else {\
+               int c = X_CMP (x, T->x);\
+               if (c < 0) {\
+                       tree_split_ ## X_NAME (T->left, x, L, &T->left);\
+                       *R = T;\
+               } else {\
+                       tree_split_ ## X_NAME (T->right, x, &T->right, R);\
+                       *L = T;\
+               }\
+       }\
+}\
+\
+static struct tree_ ## X_NAME *tree_insert_ ## X_NAME (struct tree_ ## X_NAME *T, X_TYPE x, int y) __attribute__ ((warn_unused_result,unused));\
+static struct tree_ ## X_NAME *tree_insert_ ## X_NAME (struct tree_ ## X_NAME *T, X_TYPE x, int y) {\
+       if (!T) {\
+               return new_tree_node_ ## X_NAME  (x, y);\
+       } else {\
+               if (y > T->y) {\
+                       struct tree_ ## X_NAME *N = new_tree_node_ ## X_NAME (x, y);\
+                       tree_split_ ## X_NAME (T, x, &N->left, &N->right);\
+                       return N;\
+               } else {\
+                       int c = X_CMP (x, T->x);\
+                       assert (c);\
+                       if (c < 0) { \
+                               T->left = tree_insert_ ## X_NAME (T->left, x, y);\
+                       } else { \
+                               T->right = tree_insert_ ## X_NAME (T->right, x, y);\
+                       } \
+                       return T; \
+               }\
+       }\
+}\
+\
+static struct tree_ ## X_NAME *tree_merge_ ## X_NAME (struct tree_ ## X_NAME *L, struct tree_ ## X_NAME *R) {\
+       if (!L || !R) {\
+               return L ? L : R;\
+       } else {\
+               if (L->y > R->y) {\
+                       L->right = tree_merge_ ## X_NAME (L->right, R);\
+                       return L;\
+               } else {\
+                       R->left = tree_merge_ ## X_NAME (L, R->left);\
+                       return R;\
+               }\
+       }\
+}\
+\
+static struct tree_ ## X_NAME *tree_delete_ ## X_NAME (struct tree_ ## X_NAME *T, X_TYPE x) __attribute__ ((warn_unused_result,unused));\
+static struct tree_ ## X_NAME *tree_delete_ ## X_NAME (struct tree_ ## X_NAME *T, X_TYPE x) {\
+       assert (T);\
+       int c = X_CMP (x, T->x);\
+       if (!c) {\
+               struct tree_ ## X_NAME *N = tree_merge_ ## X_NAME (T->left, T->right);\
+               delete_tree_node_ ## X_NAME (T);\
+               return N;\
+       } else {\
+               if (c < 0) { \
+                       T->left = tree_delete_ ## X_NAME (T->left, x); \
+               } else { \
+                       T->right = tree_delete_ ## X_NAME (T->right, x); \
+               } \
+               return T; \
+       }\
+}\
+\
+static X_TYPE tree_get_min_ ## X_NAME (struct tree_ ## X_NAME *t) __attribute__ ((unused));\
+static X_TYPE tree_get_min_ ## X_NAME (struct tree_ ## X_NAME *T) {\
+       if (!T) { return X_UNSET; } \
+       while (T->left) { T = T->left; }\
+       return T->x; \
+} \
+\
+static X_TYPE tree_lookup_ ## X_NAME (struct tree_ ## X_NAME *T, X_TYPE x) __attribute__ ((unused));\
+static X_TYPE tree_lookup_ ## X_NAME (struct tree_ ## X_NAME *T, X_TYPE x) {\
+       int c;\
+       while (T && (c = X_CMP (x, T->x))) {\
+               T = (c < 0 ? T->left : T->right);\
+       }\
+       return T ? T->x : X_UNSET;\
+}\
+\
+static void tree_act_ ## X_NAME (struct tree_ ## X_NAME *T, void (*act)(X_TYPE)) __attribute__ ((unused));\
+static void tree_act_ ## X_NAME (struct tree_ ## X_NAME *T, void (*act)(X_TYPE)) {\
+       if (!T) { return; } \
+       tree_act_ ## X_NAME (T->left, act); \
+       act (T->x); \
+       tree_act_ ## X_NAME (T->right, act); \
+}\
+\
+static void tree_act_ex_ ## X_NAME (struct tree_ ## X_NAME *T, void (*act)(X_TYPE, void *), void *extra) __attribute__ ((unused));\
+static void tree_act_ex_ ## X_NAME (struct tree_ ## X_NAME *T, void (*act)(X_TYPE, void *), void *extra) {\
+       if (!T) { return; } \
+       tree_act_ex_ ## X_NAME (T->left, act, extra); \
+       act (T->x, extra); \
+       tree_act_ex_ ## X_NAME (T->right, act, extra); \
+}\
+\
+static int tree_count_ ## X_NAME (struct tree_ ## X_NAME *T) __attribute__ ((unused));\
+static int tree_count_ ## X_NAME (struct tree_ ## X_NAME *T) { \
+       if (!T) { return 0; }\
+       return 1 + tree_count_ ## X_NAME (T->left) + tree_count_ ## X_NAME (T->right); \
+}\
+static void tree_check_ ## X_NAME (struct tree_ ## X_NAME *T) __attribute__ ((unused));\
+static void tree_check_ ## X_NAME (struct tree_ ## X_NAME *T) { \
+       if (!T) { return; }\
+       if (T->left) { \
+               assert (T->left->y <= T->y);\
+               assert (X_CMP (T->left->x, T->x) < 0); \
+       }\
+       if (T->right) { \
+               assert (T->right->y <= T->y);\
+               assert (X_CMP (T->right->x, T->x) > 0); \
+       }\
+       tree_check_ ## X_NAME (T->left); \
+       tree_check_ ## X_NAME (T->right); \
+}\
+static struct tree_ ## X_NAME *tree_clear_ ## X_NAME (struct tree_ ## X_NAME *T) __attribute__ ((unused));\
+static struct tree_ ## X_NAME *tree_clear_ ## X_NAME (struct tree_ ## X_NAME *T) { \
+       if (!T) { return 0; }\
+       tree_clear_ ## X_NAME (T->left); \
+       tree_clear_ ## X_NAME (T->right); \
+       delete_tree_node_ ## X_NAME (T); \
+       return 0; \
+} \
+
+#define int_cmp(a,b) ((a) - (b))
+#pragma pack(pop)
+#endif
diff --git a/tg-engine-service/mtprotocol/updates.c b/tg-engine-service/mtprotocol/updates.c
new file mode 100644 (file)
index 0000000..ec72f81
--- /dev/null
@@ -0,0 +1,625 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or(at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Vitaly Valtman 2013-2015
+ */
+#include "tgl.h"
+#include "updates.h"
+#include "mtproto-common.h"
+#include "tgl-binlog.h"
+#include "auto.h"
+#include "tgl-structures.h"
+#include "tree.h"
+#include <assert.h>
+
+void tglu_fetch_pts(struct tgl_state *TLS)
+{
+       int p = fetch_int();
+       if (p <= TLS->pts) { return; }
+       bl_do_set_pts(TLS, p);
+}
+
+void tglu_fetch_qts(struct tgl_state *TLS)
+{
+       int p = fetch_int();
+       if (p <= TLS->qts) { return; }
+       bl_do_set_qts(TLS, p);
+}
+
+void tglu_fetch_date(struct tgl_state *TLS)
+{
+       int p = fetch_int();
+       if (p > TLS->date) {
+               //TLS->date = p;
+               bl_do_set_date(TLS, TLS->date);
+       }
+}
+
+static void fetch_dc_option(struct tgl_state *TLS)
+{
+       assert(fetch_int() == CODE_dc_option);
+       int id = fetch_int();
+       int l1 = prefetch_strlen();
+       char *name = fetch_str(l1);
+       int l2 = prefetch_strlen();
+       char *ip = fetch_str(l2);
+       int port = fetch_int();
+       vlogprintf(E_DEBUG, "id = %d, name = %.*s ip = %.*s port = %d\n", id, l1, name, l2, ip, port);
+       bl_do_dc_option(TLS, id, l1, name, l2, ip, port);
+}
+
+void tglu_work_update(struct tgl_state *TLS, struct connection *c, long long msg_id)
+{
+       unsigned op = fetch_int();
+       switch(op) {
+       case CODE_update_new_message:
+       {
+               struct tgl_message *M = tglf_fetch_alloc_message(TLS);
+               assert(M);
+               tglu_fetch_pts(TLS);
+               bl_do_msg_update(TLS, M->id);
+               break;
+       };
+       case CODE_update_message_i_d:
+       {
+               int id = fetch_int(); // id
+               long long new = fetch_long(); // random_id
+               struct tgl_message *M = tgl_message_get(TLS, new);
+               if (M) {
+                       bl_do_set_msg_id(TLS, M, id);
+               }
+       }
+       break;
+       case CODE_update_read_messages:
+       {
+               assert(fetch_int() ==(int)CODE_vector);
+               int n = fetch_int();
+
+               //int p = 0;
+               int i;
+               for(i = 0; i < n; i++) {
+                       int id = fetch_int();
+                       struct tgl_message *M = tgl_message_get(TLS, id);
+                       if (M) {
+                               bl_do_set_unread(TLS, M, 0);
+                       }
+               }
+               tglu_fetch_pts(TLS);
+       }
+       break;
+       case CODE_update_user_typing:
+       {
+               //vlogprintf(E_ERROR, "user typing\n");
+               tgl_peer_id_t id = TGL_MK_USER(fetch_int());
+               tgl_peer_t *U = tgl_peer_get(TLS, id);
+               enum tgl_typing_status status = tglf_fetch_typing();
+
+               if (TLS->callback.type_notification && U) {
+                       TLS->callback.type_notification(TLS,(void *)U, status);
+               }
+       }
+       break;
+       case CODE_update_chat_user_typing:
+       {
+               //vlogprintf(E_ERROR, "chat typing\n");
+               tgl_peer_id_t chat_id = TGL_MK_CHAT(fetch_int());
+               tgl_peer_id_t id = TGL_MK_USER(fetch_int());
+               tgl_peer_t *C = tgl_peer_get(TLS, chat_id);
+               tgl_peer_t *U = tgl_peer_get(TLS, id);
+               enum tgl_typing_status status = tglf_fetch_typing();
+
+               if (U && C) {
+                       if (TLS->callback.type_in_chat_notification) {
+                               TLS->callback.type_in_chat_notification(TLS,(void *)U,(void *)C, status);
+                       }
+               }
+       }
+       break;
+       case CODE_update_user_status:
+       {
+               tgl_peer_id_t user_id = TGL_MK_USER(fetch_int());
+               tgl_peer_t *U = tgl_peer_get(TLS, user_id);
+               if (U) {
+                       tglf_fetch_user_status(TLS, &U->user.status, &U->user);
+
+                       if (TLS->callback.status_notification) {
+                               TLS->callback.status_notification(TLS,(void *)U);
+                       }
+               } else {
+                       assert(skip_type_any(TYPE_TO_PARAM(user_status)) >= 0);
+               }
+       }
+       break;
+       case CODE_update_user_name:
+       {
+               tgl_peer_id_t user_id = TGL_MK_USER(fetch_int());
+               tgl_peer_t *UC = tgl_peer_get(TLS, user_id);
+               if (UC &&(UC->flags & FLAG_CREATED)) {
+                       int l1 = prefetch_strlen();
+                       char *f = fetch_str(l1);
+                       int l2 = prefetch_strlen();
+                       char *l = fetch_str(l2);
+                       struct tgl_user *U = &UC->user;
+                       bl_do_user_set_real_name(TLS, U, f, l1, l, l2);
+                       int l3 = prefetch_strlen();
+                       f = fetch_str(l3);
+                       bl_do_user_set_username(TLS, U, f, l3);
+               } else {
+                       fetch_skip_str();
+                       fetch_skip_str();
+                       fetch_skip_str();
+               }
+       }
+       break;
+       case CODE_update_user_photo:
+       {
+               tgl_peer_id_t user_id = TGL_MK_USER(fetch_int());
+               tgl_peer_t *UC = tgl_peer_get(TLS, user_id);
+               tglu_fetch_date(TLS);
+               if (UC &&(UC->flags & FLAG_CREATED)) {
+                       struct tgl_user *U = &UC->user;
+                       unsigned y = fetch_int();
+                       long long photo_id;
+                       struct tgl_file_location big;
+                       struct tgl_file_location small;
+                       memset(&big, 0, sizeof(big));
+                       memset(&small, 0, sizeof(small));
+                       if (y == CODE_user_profile_photo_empty) {
+                               photo_id = 0;
+                               big.dc = -2;
+                               small.dc = -2;
+                       } else {
+                               assert(y == CODE_user_profile_photo);
+                               photo_id = fetch_long();
+                               tglf_fetch_file_location(TLS, &small);
+                               tglf_fetch_file_location(TLS, &big);
+                       }
+                       bl_do_set_user_profile_photo(TLS, U, photo_id, &big, &small);
+               } else {
+                       struct tgl_file_location t;
+                       unsigned y = fetch_int();
+                       if (y == CODE_user_profile_photo_empty) {
+                       } else {
+                               assert(y == CODE_user_profile_photo);
+                               fetch_long(); // photo_id
+                               tglf_fetch_file_location(TLS, &t);
+                               tglf_fetch_file_location(TLS, &t);
+                       }
+               }
+               fetch_bool();
+       }
+       break;
+       case CODE_update_restore_messages:
+       {
+               assert(fetch_int() == CODE_vector);
+               int n = fetch_int();
+               fetch_skip(n);
+               tglu_fetch_pts(TLS);
+       }
+       break;
+       case CODE_update_delete_messages:
+       {
+               assert(fetch_int() == CODE_vector);
+               int n = fetch_int();
+               fetch_skip(n);
+               tglu_fetch_pts(TLS);
+       }
+       break;
+       case CODE_update_chat_participants:
+       {
+               unsigned x = fetch_int();
+               assert(x == CODE_chat_participants || x == CODE_chat_participants_forbidden);
+               tgl_peer_id_t chat_id = TGL_MK_CHAT(fetch_int());
+               int n = 0;
+               tgl_peer_t *C = tgl_peer_get(TLS, chat_id);
+               if (C &&(C->flags & FLAG_CREATED)) {
+                       if (x == CODE_chat_participants) {
+                               bl_do_chat_set_admin(TLS, &C->chat, fetch_int());
+                               assert(fetch_int() == CODE_vector);
+                               n = fetch_int();
+                               struct tgl_chat_user *users = talloc(12 * n);
+                               int i;
+                               for(i = 0; i < n; i++) {
+                                       assert(fetch_int() ==(int)CODE_chat_participant);
+                                       users[i].user_id = fetch_int();
+                                       users[i].inviter_id = fetch_int();
+                                       users[i].date = fetch_int();
+                               }
+                               int version = fetch_int();
+                               bl_do_chat_set_participants(TLS, &C->chat, version, n, users);
+                       }
+               } else {
+                       if (x == CODE_chat_participants) {
+                               fetch_int(); // admin_id
+                               assert(fetch_int() == CODE_vector);
+                               n = fetch_int();
+                               fetch_skip(n * 4);
+                               fetch_int(); // version
+                       }
+               }
+       }
+       break;
+       case CODE_update_contact_registered:
+       {
+               tgl_peer_id_t user_id = TGL_MK_USER(fetch_int());
+               tgl_peer_t *U = tgl_peer_get(TLS, user_id);
+               fetch_int(); // date
+               if (TLS->callback.user_registered && U) {
+                       TLS->callback.user_registered(TLS,(void *)U);
+               }
+       }
+       break;
+       case CODE_update_contact_link:
+       {
+               tgl_peer_id_t user_id = TGL_MK_USER(fetch_int());
+               tgl_peer_t *U = tgl_peer_get(TLS, user_id);
+               unsigned t = fetch_int();
+               assert(t == CODE_contacts_my_link_empty || t == CODE_contacts_my_link_requested || t == CODE_contacts_my_link_contact);
+               if (t == CODE_contacts_my_link_requested) {
+                       fetch_bool(); // has_phone
+               }
+               t = fetch_int();
+               assert(t == CODE_contacts_foreign_link_unknown || t == CODE_contacts_foreign_link_requested || t == CODE_contacts_foreign_link_mutual);
+               if (t == CODE_contacts_foreign_link_requested) {
+                       fetch_bool(); // has_phone
+               }
+               if (U) {}
+       }
+       break;
+       case CODE_update_activation:
+       {
+               tgl_peer_id_t user_id = TGL_MK_USER(fetch_int());
+               tgl_peer_t *U = tgl_peer_get(TLS, user_id);
+
+               if (TLS->callback.user_activated && U) {
+                       TLS->callback.user_activated(TLS,(void *)U);
+               }
+       }
+       break;
+       case CODE_update_new_authorization:
+       {
+               fetch_long(); // auth_key_id
+               fetch_int(); // date
+               char *s = fetch_str_dup();
+               char *location = fetch_str_dup();
+               if (TLS->callback.new_authorization) {
+                       TLS->callback.new_authorization(TLS, s, location);
+               }
+               tfree_str(s);
+               tfree_str(location);
+       }
+       break;
+       case CODE_update_new_geo_chat_message:
+       {
+               struct tgl_message *M = tglf_fetch_alloc_geo_message(TLS);
+               assert(M);
+               bl_do_msg_update(TLS, M->id);
+       }
+       break;
+       case CODE_update_new_encrypted_message:
+       {
+               struct tgl_message *M = tglf_fetch_alloc_encrypted_message(TLS);
+               assert(M);
+               tglu_fetch_qts(TLS);
+               bl_do_msg_update(TLS, M->id);
+       }
+       break;
+       case CODE_update_encryption:
+       {
+               struct tgl_secret_chat *E = tglf_fetch_alloc_encrypted_chat(TLS);
+               vlogprintf(E_DEBUG, "Secret chat state = %d\n", E->state);
+               if (E->state == sc_ok) {
+                       tgl_do_send_encr_chat_layer(TLS, E);
+               }
+               fetch_int(); // date
+       }
+       break;
+       case CODE_update_encrypted_chat_typing:
+       {
+               tgl_peer_id_t id = TGL_MK_ENCR_CHAT(fetch_int());
+               tgl_peer_t *P = tgl_peer_get(TLS, id);
+
+               if (P) {
+                       if (TLS->callback.type_in_secret_chat_notification) {
+                               TLS->callback.type_in_secret_chat_notification(TLS,(void *)P);
+                       }
+               }
+       }
+       break;
+       case CODE_update_encrypted_messages_read:
+       {
+               tgl_peer_id_t id = TGL_MK_ENCR_CHAT(fetch_int()); // chat_id
+               fetch_int(); // max_date
+               fetch_int(); // date
+               tgl_peer_t *P = tgl_peer_get(TLS, id);
+               //int x = -1;
+               if (P && P->last) {
+                       //x = 0;
+                       struct tgl_message *M = P->last;
+                       while(M &&(!M->out || M->unread)) {
+                               if (M->out) {
+                                       bl_do_set_unread(TLS, M, 0);
+                               }
+                               M = M->next;
+                       }
+               }
+       }
+       break;
+       case CODE_update_chat_participant_add:
+       {
+               tgl_peer_id_t chat_id = TGL_MK_CHAT(fetch_int());
+               tgl_peer_id_t user_id = TGL_MK_USER(fetch_int());
+               tgl_peer_id_t inviter_id = TGL_MK_USER(fetch_int());
+               int  version = fetch_int();
+
+               tgl_peer_t *C = tgl_peer_get(TLS, chat_id);
+               if (C &&(C->flags & FLAG_CREATED)) {
+                       bl_do_chat_add_user(TLS, &C->chat, version, tgl_get_peer_id(user_id), tgl_get_peer_id(inviter_id), time(0));
+               }
+       }
+       break;
+       case CODE_update_chat_participant_delete:
+       {
+               tgl_peer_id_t chat_id = TGL_MK_CHAT(fetch_int());
+               tgl_peer_id_t user_id = TGL_MK_USER(fetch_int());
+               int version = fetch_int();
+
+               tgl_peer_t *C = tgl_peer_get(TLS, chat_id);
+               if (C &&(C->flags & FLAG_CREATED)) {
+                       bl_do_chat_del_user(TLS, &C->chat, version, tgl_get_peer_id(user_id));
+               }
+       }
+       break;
+       case CODE_update_dc_options:
+       {
+               assert(fetch_int() == CODE_vector);
+               int n = fetch_int();
+               assert(n >= 0);
+               int i;
+               for(i = 0; i < n; i++) {
+                       fetch_dc_option(TLS);
+               }
+       }
+       break;
+       case CODE_update_user_blocked:
+       {
+               int id = fetch_int();
+               int blocked = fetch_bool();
+               tgl_peer_t *P = tgl_peer_get(TLS, TGL_MK_USER(id));
+               if (P &&(P->flags & FLAG_CREATED)) {
+                       bl_do_user_set_blocked(TLS, &P->user, blocked);
+               }
+       }
+       break;
+       case CODE_update_notify_settings:
+       {
+               assert(skip_type_any(TYPE_TO_PARAM(notify_peer)) >= 0);
+               assert(skip_type_any(TYPE_TO_PARAM(peer_notify_settings)) >= 0);
+       }
+       break;
+       case CODE_update_service_notification:
+       {
+               int l1 = prefetch_strlen();
+               char *type = fetch_str(l1);
+               int l2 = prefetch_strlen();
+               char *message = fetch_str(l2);
+               skip_type_message_media(TYPE_TO_PARAM(message_media));
+               fetch_bool();
+               vlogprintf(E_ERROR, "Notification %.*s: %.*s\n", l1, type, l2, message);
+               if (TLS->callback.notification) {
+                       char *t = tstrndup(type, l1);
+                       char *m = tstrndup(message, l2);
+                       TLS->callback.notification(TLS, t, m);
+                       tfree_str(t);
+                       tfree_str(m);
+               }
+       }
+       break;
+       case CODE_update_privacy:
+               assert(skip_type_privacy_key(TYPE_TO_PARAM(privacy_key)) >= 0);
+               assert(skip_type_vector(TYPE_TO_PARAM_1(vector, TYPE_TO_PARAM(privacy_rule))) >= 0);
+               vlogprintf(E_NOTICE, "privacy change update\n");
+               break;
+       case CODE_update_user_phone:
+       {
+               int id = fetch_int();
+               int l = prefetch_strlen();
+               char *phone = fetch_str(l);
+               tgl_peer_t *U = tgl_peer_get(TLS, TGL_MK_USER(id));
+               if (U &&(U->flags & FLAG_CREATED)) {
+                       bl_do_user_set_phone(TLS, &U->user, phone, l);
+               }
+       }
+       break;
+
+       default:
+               vlogprintf(E_ERROR, "Unknown update type %08x\n", op);
+               ;
+       }
+}
+
+void tglu_work_update_short(struct tgl_state *TLS, struct connection *c, long long msg_id)
+{
+       int *save = in_ptr;
+       assert(!skip_type_any(TYPE_TO_PARAM(updates)));
+       int *save_end = in_ptr;
+       in_ptr = save;
+
+       assert(fetch_int() == CODE_update_short);
+       tglu_work_update(TLS, c, msg_id);
+       tglu_fetch_date(TLS);
+
+       assert(save_end == in_ptr);
+}
+
+static int do_skip_seq(struct tgl_state *TLS, int seq)
+{
+       if (TLS->seq) {
+               if (seq <= TLS->seq) {
+                       vlogprintf(E_NOTICE, "Duplicate message with seq=%d\n", seq);
+                       return -1;
+               }
+               if (seq > TLS->seq + 1) {
+                       vlogprintf(E_NOTICE, "Hole in seq(seq = %d, cur_seq = %d)\n", seq, TLS->seq);
+                       //vlogprintf(E_NOTICE, "lock_diff = %s\n",(TLS->locks & TGL_LOCK_DIFF) ? "true" : "false");
+                       tgl_do_get_difference(TLS, 0, 0, 0);
+                       return -1;
+               }
+               if (TLS->locks & TGL_LOCK_DIFF) {
+                       vlogprintf(E_DEBUG, "Update during get_difference. seq = %d\n", seq);
+                       return -1;
+               }
+               vlogprintf(E_DEBUG, "Ok update. seq = %d\n", seq);
+               return 0;
+       } else {
+               return -1;
+       }
+}
+
+void tglu_work_updates(struct tgl_state *TLS, struct connection *c, long long msg_id)
+{
+       int *save = in_ptr;
+       assert(!skip_type_any(TYPE_TO_PARAM(updates)));
+       if (do_skip_seq(TLS, *(in_ptr - 1)) < 0) {
+               return;
+       }
+       int *save_end = in_ptr;
+       in_ptr = save;
+       assert(fetch_int() == CODE_updates);
+       assert(fetch_int() == CODE_vector);
+       int n = fetch_int();
+       int i;
+       for(i = 0; i < n; i++) {
+               tglu_work_update(TLS, c, msg_id);
+       }
+       assert(fetch_int() == CODE_vector);
+       n = fetch_int();
+       for(i = 0; i < n; i++) {
+               tglf_fetch_alloc_user(TLS);
+       }
+       assert(fetch_int() == CODE_vector);
+       n = fetch_int();
+       for(i = 0; i < n; i++) {
+               tglf_fetch_alloc_chat(TLS);
+       }
+       bl_do_set_date(TLS, fetch_int());
+       //bl_do_set_seq(fetch_int());
+       int seq = fetch_int();
+       assert(seq == TLS->seq + 1);
+       bl_do_set_seq(TLS, seq);
+       assert(save_end == in_ptr);
+}
+
+void tglu_work_update_short_message(struct tgl_state *TLS, struct connection *c, long long msg_id)
+{
+       int *save = in_ptr;
+       assert(!skip_type_any(TYPE_TO_PARAM(updates)));
+       if (do_skip_seq(TLS, *(in_ptr - 1)) < 0) {
+               return;
+       }
+       int *save_end = in_ptr;
+       in_ptr = save;
+
+       assert(fetch_int() ==(int)CODE_update_short_message);
+       struct tgl_message *M = tglf_fetch_alloc_message_short(TLS);
+       assert(M);
+
+       assert(save_end == in_ptr);
+       if (!(TLS->locks & TGL_LOCK_DIFF)) {
+               bl_do_msg_seq_update(TLS, M->id);
+       }
+}
+
+void tglu_work_update_short_chat_message(struct tgl_state *TLS, struct connection *c, long long msg_id)
+{
+       int *save = in_ptr;
+       assert(!skip_type_any(TYPE_TO_PARAM(updates)));
+       if (do_skip_seq(TLS, *(in_ptr - 1)) < 0) {
+               return;
+       }
+       int *save_end = in_ptr;
+       in_ptr = save;
+
+       assert(fetch_int() == CODE_update_short_chat_message);
+       struct tgl_message *M = tglf_fetch_alloc_message_short_chat(TLS);
+       assert(M);
+       assert(save_end == in_ptr);
+
+       if (!(TLS->locks & TGL_LOCK_DIFF)) {
+               bl_do_msg_seq_update(TLS, M->id);
+       }
+}
+void tglu_work_updates_to_long(struct tgl_state *TLS, struct connection *c, long long msg_id)
+{
+       assert(fetch_int() ==(int)CODE_updates_too_long);
+       vlogprintf(E_NOTICE, "updates too long... Getting difference\n");
+       tgl_do_get_difference(TLS, 0, 0, 0);
+}
+
+#define user_cmp(a,b)(tgl_get_peer_id((a)->id) - tgl_get_peer_id((b)->id))
+DEFINE_TREE (user, struct tgl_user *,user_cmp,0)
+
+static void notify_status(struct tgl_user *U, void *ex)
+{
+       struct tgl_state *TLS = ex;
+       if (TLS->callback.user_status_update) {
+               TLS->callback.user_status_update(TLS, U);
+       }
+}
+
+static void status_notify(struct tgl_state *TLS, void *arg)
+{
+       tree_act_ex_user(TLS->online_updates, notify_status, TLS);
+       tree_clear_user(TLS->online_updates);
+       TLS->online_updates = NULL;
+       TLS->timer_methods->free(TLS->online_updates_timer);
+       TLS->online_updates_timer = NULL;
+}
+
+void tgl_insert_status_update(struct tgl_state *TLS, struct tgl_user *U)
+{
+       if (!tree_lookup_user(TLS->online_updates, U)) {
+               TLS->online_updates = tree_insert_user(TLS->online_updates, U, lrand48());
+       }
+       if (!TLS->online_updates_timer) {
+               TLS->online_updates_timer = TLS->timer_methods->alloc(TLS, status_notify, 0);
+               TLS->timer_methods->insert(TLS->online_updates_timer, 0);
+       }
+}
+
+static void user_expire(struct tgl_state *TLS, void *arg)
+{
+       struct tgl_user *U = arg;
+       TLS->timer_methods->free(U->status.ev);
+       U->status.ev = 0;
+       U->status.online = -1;
+       U->status.when = tglt_get_double_time();
+       tgl_insert_status_update(TLS, U);
+}
+
+void tgl_insert_status_expire(struct tgl_state *TLS, struct tgl_user *U)
+{
+       assert(!U->status.ev);
+       U->status.ev = TLS->timer_methods->alloc(TLS, user_expire, U);
+       TLS->timer_methods->insert(U->status.ev, U->status.when - tglt_get_double_time());
+}
+
+void tgl_remove_status_expire(struct tgl_state *TLS, struct tgl_user *U)
+{
+       TLS->timer_methods->free(U->status.ev);
+       U->status.ev = 0;
+}
diff --git a/tg-engine-service/mtprotocol/updates.h b/tg-engine-service/mtprotocol/updates.h
new file mode 100644 (file)
index 0000000..785f282
--- /dev/null
@@ -0,0 +1,39 @@
+/* 
+    This file is part of tgl-library
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or(at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Copyright Vitaly Valtman 2013-2015
+*/
+
+#ifndef __UPDATES_H__
+#define __UPDATES_H__
+struct connection;
+void tglu_work_update(struct tgl_state *TLS, struct connection *c, long long msg_id);
+void tglu_work_updates_to_long(struct tgl_state *TLS, struct connection *c, long long msg_id);
+void tglu_work_update_short_chat_message(struct tgl_state *TLS, struct connection *c, long long msg_id);
+void tglu_work_update_short_message(struct tgl_state *TLS, struct connection *c, long long msg_id);
+void tglu_work_update_short(struct tgl_state *TLS, struct connection *c, long long msg_id);
+void tglu_work_updates(struct tgl_state *TLS, struct connection *c, long long msg_id);
+
+void tglu_fetch_pts(struct tgl_state *TLS);
+void tglu_fetch_qts(struct tgl_state *TLS);
+void tglu_fetch_seq(struct tgl_state *TLS);
+void tglu_fetch_date(struct tgl_state *TLS);
+
+void tgl_insert_status_update(struct tgl_state *TLS, struct tgl_user *U);
+void tgl_insert_status_expire(struct tgl_state *TLS, struct tgl_user *U);
+void tgl_remove_status_expire(struct tgl_state *TLS, struct tgl_user *U);
+#endif
diff --git a/tg-engine-service/project_def.prop b/tg-engine-service/project_def.prop
new file mode 100644 (file)
index 0000000..65eae28
--- /dev/null
@@ -0,0 +1,11 @@
+APPNAME = tg-engine-service
+
+type = app
+profile = mobile-2.4
+
+USER_SRCS = src/tg-engine-service.c
+USER_DEFS =
+USER_INC_DIRS = inc
+USER_OBJS =
+USER_LIBS =
+USER_EDCS =
diff --git a/tg-engine-service/res/server.pub b/tg-engine-service/res/server.pub
new file mode 100644 (file)
index 0000000..5e38bb0
--- /dev/null
@@ -0,0 +1,8 @@
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEAwVACPi9w23mF3tBkdZz+zwrzKOaaQdr01vAbU4E1pvkfj4sqDsm6
+lyDONS789sVoD/xCS9Y0hkkC3gtL1tSfTlgCMOOul9lcixlEKzwKENj1Yz/s7daS
+an9tqw3bfUV/nqgbhGX81v/+7RFAEd+RwFnK7a+XYl9sluzHRyVVaTTveB2GazTw
+Efzk2DWgkBluml8OREmvfraX3bkHZJTKX4EQSjBbbdJ2ZXIsRrYOXfaA+xayEGB+
+8hdlLmAjbCVfaigxX0CDqWeR1yFL9kwd9P0NsZRPsmoqVwMbMu7mStFai6aIhc3n
+Slv8kg9qv1m6XHVQY3PnEw+QQtqSIXklHwIDAQAB
+-----END RSA PUBLIC KEY-----
diff --git a/tg-engine-service/shared/res/tg-engine-service.png b/tg-engine-service/shared/res/tg-engine-service.png
new file mode 100644 (file)
index 0000000..9765b1b
Binary files /dev/null and b/tg-engine-service/shared/res/tg-engine-service.png differ
diff --git a/tg-engine-service/src/server_response.c b/tg-engine-service/src/server_response.c
new file mode 100644 (file)
index 0000000..101f9d0
--- /dev/null
@@ -0,0 +1,646 @@
+/*
+ * server_response.c
+ *
+ *  Created on: Jun 26, 2015
+ *      Author: sandeep
+ */
+
+#include "server_response.h"
+#include <bundle.h>
+#include "logger.h"
+
+void process_registration_command(char* phone_no, Eina_Bool trough_sms)
+{
+       if (tg_data->tg_state != TG_ENGINE_STATE_REGISTRATION || !phone_no) {
+               return;
+       }
+
+       if (!tg_data || !TLS) {
+               // service not running. error handling
+               return;
+       }
+
+       if (tg_data ->phone_number) {
+               free(tg_data->phone_number);
+               tg_data->phone_number = NULL;
+       }
+
+       tg_data->phone_number = strdup(phone_no);
+       if (tg_data->get_string) {
+               tg_data->get_string(TLS, tg_data->phone_number, tg_data->callback_arg);
+       }
+}
+
+void process_validation_command(char* code)
+{
+       if (tg_data->tg_state != TG_ENGINE_STATE_CODE_REQUEST || !code) {
+               return;
+       }
+
+       if (!tg_data || !TLS) {
+               // service not running. error handling
+               return;
+       }
+       tg_data->get_string(TLS, code, tg_data->callback_arg);
+}
+
+void process_send_message_command(int buddy_id, int msg_type, char* msg_data, int type_of_chat)
+{
+       if (!msg_data || !TLS) {
+               return;
+       }
+       send_message_to_buddy(buddy_id, msg_type, msg_data, type_of_chat);
+}
+
+void process_send_media_command(int buddy_id, int msg_type, char* file_path)
+{
+       if (!file_path || !TLS) {
+               return;
+       }
+       send_media_to_buddy(buddy_id, msg_type, file_path);
+}
+
+
+void process_media_download_command(int buddy_id, long long media_id)
+{
+       media_download_request(buddy_id, media_id);
+}
+
+void process_add_contacts_command(int size, Eina_List* contact_list)
+{
+       add_contacts_to_user(size, contact_list);
+}
+
+void process_new_group_create_command(Eina_List* buddy_ids, const char* group_name, const char* group_icon)
+{
+       create_new_group(buddy_ids, group_name, group_icon);
+}
+
+void send_registration_response(Eina_Bool is_success)
+{
+       bundle *msg = bundle_create();
+       if (bundle_add_str(msg, "app_name", "Tizen Telegram") != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "command", "registration_done") != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "phone_number", tg_data->phone_number) != 0)    {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (is_success) {
+               if (bundle_add_str(msg, "is_success", "true") != 0) {
+                       ERR("Failed to add data by key to bundle");
+                       bundle_free(msg);
+               }
+       } else {
+               if (bundle_add_str(msg, "is_success", "false") != 0) {
+                       ERR("Failed to add data by key to bundle");
+                       bundle_free(msg);
+               }
+       }
+
+    int result = SVC_RES_FAIL;
+    result = tg_server_send_message(tg_data->tg_server, msg);
+
+       if(result != SVC_RES_OK) {
+               // error: cient not ready
+       }
+
+       bundle_free(msg);
+}
+
+void send_new_group_added_response(int chat_id)
+{
+       bundle *msg = bundle_create();
+       if (bundle_add_str(msg, "app_name", "Tizen Telegram") != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "command", "new_group_added") != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char chat_id_str[50];
+       sprintf(chat_id_str,"%d",chat_id);
+       if (bundle_add_str(msg, "chat_id", chat_id_str) != 0)   {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+    int result = SVC_RES_FAIL;
+    result = tg_server_send_message(tg_data->tg_server, msg);
+
+       if(result != SVC_RES_OK) {
+               // error: cient not ready
+       }
+
+       bundle_free(msg);
+}
+
+void send_chat_profile_pic_updated_response(int chat_id, char* filename)
+{
+       bundle *msg = bundle_create();
+       if (bundle_add_str(msg, "app_name", "Tizen Telegram") != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "command", "new_group_icon_added") != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char chat_id_str[50];
+       sprintf(chat_id_str,"%d",chat_id);
+       if (bundle_add_str(msg, "chat_id", chat_id_str) != 0)   {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+       if (bundle_add_str(msg, "chat_icon_path", filename) != 0)       {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+    int result = SVC_RES_FAIL;
+    result = tg_server_send_message(tg_data->tg_server, msg);
+
+       if(result != SVC_RES_OK) {
+               // error: cient not ready
+       }
+
+       bundle_free(msg);
+}
+
+void send_name_registration_response()
+{
+       bundle *msg = bundle_create();
+       if (bundle_add_str(msg, "app_name", "Tizen Telegram") != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "command", "name_registration_request") != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+    int result = SVC_RES_FAIL;
+    result = tg_server_send_message(tg_data->tg_server, msg);
+
+       if(result != SVC_RES_OK) {
+               // error: cient not ready
+       }
+       bundle_free(msg);
+}
+
+void send_add_contacts_request()
+{
+       bundle *msg = bundle_create();
+       if (bundle_add_str(msg, "app_name", "Tizen Telegram") != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "command", "add_contacts_request") != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+    int result = SVC_RES_FAIL;
+    result = tg_server_send_message(tg_data->tg_server, msg);
+
+       if(result != SVC_RES_OK) {
+               // error: cient not ready
+       }
+       bundle_free(msg);
+}
+
+void send_contacts_and_chats_load_done_response(Eina_Bool is_success)
+{
+       bundle *msg = bundle_create();
+       if (bundle_add_str(msg, "app_name", "Tizen Telegram") != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "command", "contacts_and_chats_load_done") != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (is_success) {
+               if (bundle_add_str(msg, "is_success", "true") != 0) {
+                       ERR("Failed to add data by key to bundle");
+                       bundle_free(msg);
+               }
+       } else {
+               if (bundle_add_str(msg, "is_success", "false") != 0) {
+                       ERR("Failed to add data by key to bundle");
+                       bundle_free(msg);
+               }
+       }
+
+    int result = SVC_RES_FAIL;
+    result = tg_server_send_message(tg_data->tg_server, msg);
+
+       if(result != SVC_RES_OK) {
+               // error: cient not ready
+       }
+       bundle_free(msg);
+}
+
+void send_contacts_load_done_response(Eina_Bool is_success)
+{
+       bundle *msg = bundle_create();
+       if (bundle_add_str(msg, "app_name", "Tizen Telegram") != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "command", "contacts_load_done") != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (is_success) {
+               if (bundle_add_str(msg, "is_success", "true") != 0) {
+                       ERR("Failed to add data by key to bundle");
+                       bundle_free(msg);
+               }
+       } else {
+               if (bundle_add_str(msg, "is_success", "false") != 0) {
+                       ERR("Failed to add data by key to bundle");
+                       bundle_free(msg);
+               }
+       }
+
+    int result = SVC_RES_FAIL;
+    result = tg_server_send_message(tg_data->tg_server, msg);
+
+       if(result != SVC_RES_OK) {
+               // error: cient not ready
+       }
+       bundle_free(msg);
+}
+
+void send_buddy_profile_pic_updated_response(int buddy_id, char* file_path)
+{
+       bundle *msg = bundle_create();
+       if (bundle_add_str(msg, "app_name", "Tizen Telegram") != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "command", "buddy_profile_pic_updated") != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char usr_id_str[50];
+       sprintf(usr_id_str,"%d",buddy_id);
+
+       if (bundle_add_str(msg, "user_id", usr_id_str) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "file_path", file_path) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+    int result = SVC_RES_FAIL;
+    result = tg_server_send_message(tg_data->tg_server, msg);
+
+       if(result != SVC_RES_OK) {
+               // error: cient not ready
+       }
+       bundle_free(msg);
+}
+
+void send_message_received_response(int from_id, int to_id, long long message_id, int type_of_chat)
+{
+       bundle *msg = bundle_create();
+       if (bundle_add_str(msg, "app_name", "Tizen Telegram") != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "command", "message_received") != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char from_id_str[50];
+       sprintf(from_id_str,"%d",from_id);
+
+       if (bundle_add_str(msg, "from_id", from_id_str) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char to_id_str[50];
+       sprintf(to_id_str,"%d",to_id);
+
+       if (bundle_add_str(msg, "to_id", to_id_str) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char msg_id_str[50];
+       sprintf(msg_id_str,"%lld",message_id);
+
+       if (bundle_add_str(msg, "message_id", msg_id_str) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char type_of_chat_str[50];
+       sprintf(type_of_chat_str,"%d",type_of_chat);
+
+       if (bundle_add_str(msg, "type_of_chat", type_of_chat_str) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+    int result = SVC_RES_FAIL;
+    result = tg_server_send_message(tg_data->tg_server, msg);
+
+       if(result != SVC_RES_OK) {
+               // error: cient not ready
+       }
+       bundle_free(msg);
+}
+
+void send_message_read_by_buddy_response(int buddy_id, int message_id, char* table_name, char* phone, int type_of_chat)
+{
+       bundle *msg = bundle_create();
+       if (bundle_add_str(msg, "app_name", "Tizen Telegram") != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "command", "message_read_by_buddy") != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char usr_id_str[50];
+       sprintf(usr_id_str,"%d",buddy_id);
+
+       if (bundle_add_str(msg, "buddy_id", usr_id_str) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char msg_id_str[50];
+       sprintf(msg_id_str,"%ld",message_id);
+
+       if (bundle_add_str(msg, "message_id", msg_id_str) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "table_name", table_name) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "phone_number", phone) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char type_of_chat_str[50];
+       sprintf(type_of_chat_str,"%d",type_of_chat);
+
+       if (bundle_add_str(msg, "type_of_chat", type_of_chat_str) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+    int result = SVC_RES_FAIL;
+    result = tg_server_send_message(tg_data->tg_server, msg);
+
+       if(result != SVC_RES_OK) {
+               // error: cient not ready
+       }
+       bundle_free(msg);
+}
+
+void send_message_sent_to_buddy_response(int buddy_id, int message_id, char* table_name, char* phone, int type_of_chat)
+{
+       bundle *msg = bundle_create();
+       if (bundle_add_str(msg, "app_name", "Tizen Telegram") != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "command", "message_sent_to_buddy") != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char usr_id_str[50];
+       sprintf(usr_id_str,"%d",buddy_id);
+
+       if (bundle_add_str(msg, "buddy_id", usr_id_str) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char msg_id_str[50];
+       sprintf(msg_id_str,"%ld",message_id);
+
+       if (bundle_add_str(msg, "message_id", msg_id_str) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "table_name", table_name) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "phone_number", phone) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char type_of_chat_str[50];
+       sprintf(type_of_chat_str,"%d",type_of_chat);
+
+       if (bundle_add_str(msg, "type_of_chat", type_of_chat_str) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+    int result = SVC_RES_FAIL;
+    result = tg_server_send_message(tg_data->tg_server, msg);
+
+       if(result != SVC_RES_OK) {
+               // error: cient not ready
+       }
+       bundle_free(msg);
+}
+
+void send_media_download_completed_response(int buddy_id, long long media_id, const char* filename)
+{
+       bundle *msg = bundle_create();
+       if (bundle_add_str(msg, "app_name", "Tizen Telegram") != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "command", "media_download_completed") != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char usr_id_str[50];
+       sprintf(usr_id_str,"%d",buddy_id);
+
+       if (bundle_add_str(msg, "buddy_id", usr_id_str) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char media_id_str[50];
+       sprintf(media_id_str,"%lld",media_id);
+
+       if (bundle_add_str(msg, "media_id", media_id_str) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "file_name", filename) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+    int result = SVC_RES_FAIL;
+    result = tg_server_send_message(tg_data->tg_server, msg);
+
+       if(result != SVC_RES_OK) {
+               // error: cient not ready
+       }
+       bundle_free(msg);
+}
+
+void send_contact_updated_response(int buddy_id, char* update_message)
+{
+       if (!update_message) {
+               return;
+       }
+       bundle *msg = bundle_create();
+       if (bundle_add_str(msg, "app_name", "Tizen Telegram") != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "command", "contact_updated") != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char usr_id_str[50];
+       sprintf(usr_id_str,"%d",buddy_id);
+
+       if (bundle_add_str(msg, "buddy_id", usr_id_str) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "update_message", update_message) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+    int result = SVC_RES_FAIL;
+    result = tg_server_send_message(tg_data->tg_server, msg);
+
+       if(result != SVC_RES_OK) {
+               // error: cient not ready
+       }
+       bundle_free(msg);
+}
+
+void send_buddy_status_updated_response(int buddy_id)
+{
+       bundle *msg = bundle_create();
+       if (bundle_add_str(msg, "app_name", "Tizen Telegram") != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "command", "buddy_status_updated") != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char usr_id_str[50];
+       sprintf(usr_id_str,"%d",buddy_id);
+
+       if (bundle_add_str(msg, "buddy_id", usr_id_str) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+    int result = SVC_RES_FAIL;
+    result = tg_server_send_message(tg_data->tg_server, msg);
+
+       if(result != SVC_RES_OK) {
+               // error: cient not ready
+       }
+       bundle_free(msg);
+}
+
+void send_buddy_type_notification_response(int buddy_id, char* budy_name, int type_status)
+{
+       bundle *msg = bundle_create();
+       if (bundle_add_str(msg, "app_name", "Tizen Telegram") != 0)     {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "command", "type_status_updated") != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char usr_id_str[50];
+       sprintf(usr_id_str,"%d",buddy_id);
+
+       if (bundle_add_str(msg, "buddy_id", usr_id_str) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       if (bundle_add_str(msg, "buddy_name", budy_name) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+       char type_status_str[50];
+       sprintf(type_status_str,"%d",type_status);
+
+       if (bundle_add_str(msg, "type_status", type_status_str) != 0) {
+               ERR("Failed to add data by key to bundle");
+               bundle_free(msg);
+       }
+
+    int result = SVC_RES_FAIL;
+    result = tg_server_send_message(tg_data->tg_server, msg);
+
+       if(result != SVC_RES_OK) {
+               // error: cient not ready
+       }
+       bundle_free(msg);
+}
+
+
diff --git a/tg-engine-service/src/tg-engine-service.c b/tg-engine-service/src/tg-engine-service.c
new file mode 100644 (file)
index 0000000..23e9c52
--- /dev/null
@@ -0,0 +1,428 @@
+#include <tizen.h>
+#include <service_app.h>
+#include "tg-engine-service.h"
+#include "tg_engine.h"
+#include "tg_server.h"
+#include "logger.h"
+#include "server_response.h"
+#include <net_connection.h>
+#include "tg_db_wrapper.h"
+
+static int _on_tg_server_msg_received_cb(void *data, bundle *const rec_msg)
+{
+    int result = SVC_RES_FAIL;
+    RETVM_IF(!data, result, "Data is NULL");
+
+   // tg_engine_data_s* app = (tg_engine_data_s*)data;
+
+    char *cmd_key_val = NULL;
+
+    int res = bundle_get_str(rec_msg, "command", &cmd_key_val);
+
+
+    if (strcmp(cmd_key_val, "registration") == 0) {
+       char *ph_no_key_val = NULL;
+       char *sms_key_val = NULL;
+       res = bundle_get_str(rec_msg, "phone_number", &ph_no_key_val);
+       res = bundle_get_str(rec_msg, "through_sms", &sms_key_val);
+
+       Eina_Bool th_sms = EINA_TRUE;
+
+       if (strcmp(sms_key_val, "true") == 0) {
+               th_sms = EINA_TRUE;
+       } else {
+               th_sms = EINA_FALSE;
+       }
+
+       process_registration_command(ph_no_key_val, th_sms);
+
+    } else if (strcmp(cmd_key_val, "code_validation") == 0) {
+
+       char* sms_code_val = NULL;
+       res = bundle_get_str(rec_msg, "sms_code", &sms_code_val);
+       process_validation_command(sms_code_val);
+
+    } else if (strcmp(cmd_key_val, "message_transport") == 0) {
+
+       char* buddy_id_str = NULL;
+       res = bundle_get_str(rec_msg, "buddy_id", &buddy_id_str);
+       int buddy_id = atoi(buddy_id_str);
+
+       char* msg_type_str = NULL;
+       res = bundle_get_str(rec_msg, "message_type", &msg_type_str);
+       int msg_type = atoi(msg_type_str);
+
+       char* msg_data_str = NULL;
+       res = bundle_get_str(rec_msg, "message_data", &msg_data_str);
+
+       char* type_of_chat_str = NULL;
+       res = bundle_get_str(rec_msg, "type_of_chat", &type_of_chat_str);
+       int type_of_chat = atoi(type_of_chat_str);
+
+       process_send_message_command(buddy_id, msg_type, msg_data_str, type_of_chat);
+
+    } else if (strcmp(cmd_key_val, "media_download_request") == 0) {
+
+       char* buddy_id_str = NULL;
+       res = bundle_get_str(rec_msg, "buddy_id", &buddy_id_str);
+       int buddy_id = atoi(buddy_id_str);
+
+       char* media_id_str = NULL;
+       res = bundle_get_str(rec_msg, "media_id", &media_id_str);
+       long long media_id = atoll(media_id_str);
+       process_media_download_command(buddy_id, media_id);
+
+    } else if (strcmp(cmd_key_val, "media_transport") == 0) {
+
+       char* buddy_id_str = NULL;
+       res = bundle_get_str(rec_msg, "buddy_id", &buddy_id_str);
+       int buddy_id = atoi(buddy_id_str);
+
+       char* msg_type_str = NULL;
+       res = bundle_get_str(rec_msg, "message_type", &msg_type_str);
+       int msg_type = atoi(msg_type_str);
+
+       char* file_path_str = NULL;
+       res = bundle_get_str(rec_msg, "file_path", &file_path_str);
+       process_send_media_command(buddy_id, msg_type, file_path_str);
+
+    } else if (strcmp(cmd_key_val, "profile_registration") == 0) {
+
+       char* first_name = NULL;
+       res = bundle_get_str(rec_msg, "first_name", &first_name);
+       tg_data->first_name = strdup(first_name);
+
+       char* last_name = NULL;
+       res = bundle_get_str(rec_msg, "last_name", &last_name);
+       tg_data->last_name = strdup(last_name);
+
+       if (tg_data->tg_state == TG_ENGINE_STATE_PROFILE_FIRST_NAME_REGISTRATION && tg_data->get_string) {
+               tg_data->get_string(TLS, tg_data->first_name, tg_data->callback_arg);
+       }
+
+    } else if (strcmp(cmd_key_val, "device_contact_list") == 0) {
+
+       char* count_str = NULL;
+       res = bundle_get_str(rec_msg, "count", &count_str);
+       int size = atoi(count_str);
+       Eina_List* contact_list = NULL;
+
+       for (int count = 0 ; count < size ; count++) {
+               contact_data_s* contact = (contact_data_s*)malloc(sizeof(contact_data_s));
+               contact->first_name = NULL;
+               contact->last_name = NULL;
+               contact->phone_number = NULL;
+
+               char count_str[10];
+               sprintf(count_str, "%d", count);
+
+               char first_name_key[20];
+               strcpy(first_name_key, "first_name_");
+               strcat(first_name_key, count_str);
+
+               char last_name_key[20];
+               strcpy(last_name_key, "last_name_");
+               strcat(last_name_key, count_str);
+
+               char phone_number_key[20];
+               strcpy(phone_number_key, "phone_number_");
+               strcat(phone_number_key, count_str);
+
+               char* first_name = NULL;
+               res = bundle_get_str(rec_msg, first_name_key, &first_name);
+
+               if (first_name) {
+                       contact->first_name = strdup(first_name);
+               }
+
+               char* last_name = NULL;
+               res = bundle_get_str(rec_msg, last_name_key, &last_name);
+
+               if (last_name) {
+                       contact->last_name = strdup(last_name);
+               }
+
+               char* phone_number = NULL;
+               res = bundle_get_str(rec_msg, phone_number_key, &phone_number);
+
+               if (phone_number) {
+                       contact->phone_number = strdup(phone_number);
+               }
+               contact_list = eina_list_append(contact_list, contact);
+       }
+
+       process_add_contacts_command(size, contact_list);
+
+    } else if (strcmp(cmd_key_val, "group_creation_request") == 0) {
+       char* count_str = NULL;
+       res = bundle_get_str(rec_msg, "count", &count_str);
+       int size = atoi(count_str);
+       Eina_List* buddy_ids = NULL;
+
+       for (int count = 0 ; count < size ; count++) {
+               char count_str[10];
+               sprintf(count_str, "%d", count);
+
+               char buddy_id_key[20];
+               strcpy(buddy_id_key, "buddy_id_");
+               strcat(buddy_id_key, count_str);
+
+               char* buddy_id = NULL;
+               res = bundle_get_str(rec_msg, buddy_id_key, &buddy_id);
+
+               buddy_ids = eina_list_append(buddy_ids, buddy_id);
+       }
+
+       char* temp_group_name = NULL;
+       res = bundle_get_str(rec_msg, "group_name", &temp_group_name);
+       char* group_name = strdup(temp_group_name);
+
+       char* temp_group_image = NULL;
+       res = bundle_get_str(rec_msg, "group_image", &temp_group_image);
+       char* group_image = strdup(temp_group_image);
+
+       process_new_group_create_command(buddy_ids, group_name, group_image);
+
+    } else {
+
+    }
+
+    return result;
+}
+
+Eina_Bool event_idler_cb(void *data)
+{
+       init_tl_engine();
+       tgl_login(TLS);
+       return ECORE_CALLBACK_CANCEL;
+}
+
+
+void on_connection_type_changed_cb(connection_type_e type, void *user_data)
+{
+       int err_code;
+       if (type == CONNECTION_TYPE_WIFI) {
+               connection_wifi_state_e wifi_state;
+               err_code = connection_get_wifi_state(tg_data->connection, &wifi_state);
+               if (err_code == CONNECTION_ERROR_NONE) {
+                       switch (wifi_state)     {
+                       case CONNECTION_WIFI_STATE_DEACTIVATED:
+                               tg_data->is_network_connected = EINA_FALSE;
+                               break;
+                       case CONNECTION_WIFI_STATE_DISCONNECTED:
+                               tg_data->is_network_connected = EINA_FALSE;
+                               break;
+                       case CONNECTION_WIFI_STATE_CONNECTED:
+                               tg_data->is_network_connected = EINA_TRUE;
+                               break;
+                       default:
+                               tg_data->is_network_connected = EINA_FALSE;
+                               break;
+                       }
+               }
+       } else if(type == CONNECTION_TYPE_CELLULAR) {
+               connection_cellular_state_e cellular_state;
+               err_code = connection_get_cellular_state(tg_data->connection, &cellular_state);
+               if (err_code == CONNECTION_ERROR_NONE && cellular_state == CONNECTION_CELLULAR_STATE_CONNECTED) {
+                       tg_data->is_network_connected = EINA_TRUE;
+               }
+       } else {
+
+       }
+
+       if (tg_data->is_network_connected && !tg_data->is_login_activated) {
+               Ecore_Idler *idler_for_event;
+               idler_for_event = ecore_idler_add(event_idler_cb, NULL);
+               if (!idler_for_event) {
+                       // error handling
+               }
+       }
+}
+
+
+bool service_app_create(void *data)
+{
+       tg_data->tg_state = TG_ENGINE_STATE_REGISTRATION;
+       tg_data->phone_number = NULL;
+       tg_data->first_name = NULL;
+       tg_data->last_name = NULL;
+       tg_data->sms_code = NULL;
+       tg_data->get_string = NULL;
+       tg_data->is_login_activated = EINA_FALSE;
+       tg_data->is_group_creation_requested = EINA_FALSE;
+       tg_data->new_group_icon = NULL;
+
+       tg_engine_data_s* ad = data;
+
+       ad->tg_server = tg_server_create();
+
+    int result = SVC_RES_FAIL;
+    RETVM_IF(!ad, result, "Application data is NULL");
+
+    ad->tg_server = tg_server_create();
+    RETVM_IF(!ad->tg_server, result, "Failed to create proxy client");
+
+    result = tg_server_register_port(ad->tg_server, TELEGRAM_SERVER_PORT_NAME);
+    if (result != SVC_RES_OK)
+    {
+        ERR("Failed to register proxy client port");
+        tg_server_destroy(ad->tg_server);
+        ad->tg_server = NULL;
+        return result;
+    }
+
+    result = _tg_server_set_remote_data(ad->tg_server, TELEGRAM_CLIENT_APP_NAME, TELEGRAM_CLIENT_PORT_NAME);
+
+    result = tg_server_register_msg_receive_callback(ad->tg_server, _on_tg_server_msg_received_cb, ad);
+
+       // if wi-fi or data is on
+    int err_code;
+    create_data_base_tables();
+    err_code = connection_create(&(tg_data->connection));
+
+    if (err_code == CONNECTION_ERROR_NONE) {
+
+       connection_type_e net_state;
+       err_code = connection_get_type(tg_data->connection, &net_state);
+
+        if (err_code == CONNECTION_ERROR_NONE) {
+                if (net_state == CONNECTION_TYPE_WIFI) {
+                        tg_data->is_network_connected = EINA_TRUE;
+                } else if(net_state == CONNECTION_TYPE_CELLULAR) {
+                        tg_data->is_network_connected = EINA_TRUE;
+                } else {
+                        tg_data->is_network_connected = EINA_FALSE;
+                }
+        }
+
+        connection_wifi_state_e wifi_state;
+        err_code = connection_get_wifi_state(tg_data->connection, &wifi_state);
+        if (err_code == CONNECTION_ERROR_NONE) {
+                switch (wifi_state)    {
+                case CONNECTION_WIFI_STATE_DEACTIVATED:
+                        tg_data->is_network_connected = EINA_FALSE;
+                        break;
+                case CONNECTION_WIFI_STATE_DISCONNECTED:
+                        tg_data->is_network_connected = EINA_FALSE;
+                        break;
+                case CONNECTION_WIFI_STATE_CONNECTED:
+                        tg_data->is_network_connected = EINA_TRUE;
+                        break;
+                default:
+                        tg_data->is_network_connected = EINA_FALSE;
+                        break;
+                }
+        }
+
+        if (!tg_data->is_network_connected) {
+                connection_cellular_state_e cellular_state;
+                err_code = connection_get_cellular_state(tg_data->connection, &cellular_state);
+
+                if (err_code == CONNECTION_ERROR_NONE && cellular_state == CONNECTION_CELLULAR_STATE_CONNECTED) {
+                        tg_data->is_network_connected = EINA_TRUE;
+                }
+        }
+
+        err_code = connection_set_type_changed_cb(tg_data->connection, on_connection_type_changed_cb, NULL);
+        if (err_code == CONNECTION_ERROR_NONE) {
+
+        } else {
+
+        }
+
+    }
+
+       if (tg_data->is_network_connected ) {
+               Ecore_Idler *idler_for_event;
+               idler_for_event = ecore_idler_add(event_idler_cb, NULL);
+               if (!idler_for_event) {
+                       // error handling
+               }
+       }
+
+    if (result != SVC_RES_OK)
+    {
+        ERR("Failed to register proxy client on message receive callback");
+        tg_server_destroy(ad->tg_server);
+        ad->tg_server = NULL;
+        return result;
+    }
+
+    return true;
+}
+
+void service_app_terminate(void *data)
+{
+       tg_engine_data_s* ad = data;
+    if (TLS) {
+       free(TLS);
+       TLS = NULL;
+    }
+    if (ad->tg_server) {
+       tg_server_destroy(ad->tg_server);
+       ad->tg_server = NULL;
+    }
+    connection_destroy(tg_data->connection);
+    if (tg_data) {
+       free(tg_data);
+       tg_data = NULL;
+    }
+    return;
+}
+
+void service_app_control(app_control_h app_control, void *data)
+{
+    // Todo: add your code here.
+    return;
+}
+
+static void
+service_app_lang_changed(app_event_info_h event_info, void *user_data)
+{
+       /*APP_EVENT_LANGUAGE_CHANGED*/
+       return;
+}
+
+static void
+service_app_orient_changed(app_event_info_h event_info, void *user_data)
+{
+       /*APP_EVENT_DEVICE_ORIENTATION_CHANGED*/
+       return;
+}
+
+static void
+service_app_region_changed(app_event_info_h event_info, void *user_data)
+{
+       /*APP_EVENT_REGION_FORMAT_CHANGED*/
+}
+
+static void
+service_app_low_battery(app_event_info_h event_info, void *user_data)
+{
+       /*APP_EVENT_LOW_BATTERY*/
+}
+
+static void
+service_app_low_memory(app_event_info_h event_info, void *user_data)
+{
+       /*APP_EVENT_LOW_MEMORY*/
+}
+
+int main(int argc, char* argv[])
+{
+       tg_data = (tg_engine_data_s*)malloc(sizeof(tg_engine_data_s));
+       service_app_lifecycle_callback_s event_callback;
+       app_event_handler_h handlers[5] = {NULL, };
+
+       event_callback.create = service_app_create;
+       event_callback.terminate = service_app_terminate;
+       event_callback.app_control = service_app_control;
+
+       service_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, service_app_low_battery, tg_data);
+       service_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, service_app_low_memory, tg_data);
+       service_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, service_app_orient_changed, tg_data);
+       service_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, service_app_lang_changed, tg_data);
+       service_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, service_app_region_changed, tg_data);
+
+       return service_app_main(argc, argv, &event_callback, tg_data);
+}
diff --git a/tg-engine-service/src/tg_db_wrapper.c b/tg-engine-service/src/tg_db_wrapper.c
new file mode 100644 (file)
index 0000000..69d50bb
--- /dev/null
@@ -0,0 +1,2374 @@
+/*
+ * tg_db_wrapper.c
+ *
+ *  Created on: Jun 26, 2015
+ *      Author: sandeep
+ */
+
+#include "tg_db_wrapper.h"
+#include "tg_common.h"
+#include "tgl-layout.h"
+
+void create_data_base_tables()
+{
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       if(db) {
+               char* table_name = USER_INFO_TABLE_NAME;
+               Eina_List* col_names = NULL;
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_USER_ID);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_PRINT_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_STRUCTURE_VERSION);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_PHOTO_PATH);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_PHOTO_ID);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_FIRST_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_LAST_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_PHONE_NO);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_ACCESS_HASH);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_REAL_FIRST_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_REAL_LAST_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_USER_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_ONLINE_STATUS);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_LAST_SEEN_TIME);
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_PRIMARY_KEY);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+               Eina_Bool ret = create_table(db, table_name, col_names, col_types);
+               if(!ret) {
+                       // error occured
+               }
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+
+               table_name = BUDDY_INFO_TABLE_NAME;
+               col_names = NULL;
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_BUDDY_ID);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PRINT_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_STRUCTURE_VERSION);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PHOTO_PATH);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PHOTO_ID);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_FIRST_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_LAST_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PHONE_NO);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_ACCESS_HASH);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_REAL_FIRST_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_REAL_LAST_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_BUDDY_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_ONLINE_STATUS);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_LAST_SEEN_TIME);
+
+               col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_PRIMARY_KEY);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+               ret = create_table(db, table_name, col_names, col_types);
+               if(!ret) {
+                       // error occured
+               }
+
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+
+               table_name = MEDIA_INFO_TABLE_NAME;
+               col_names = NULL;
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_MEDIA_ID);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_MEDIA_TYPE);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_ACCESS_HASH);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_USER_ID);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_DATE);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_CAPTION);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_LONGITUDE);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_LATITUDE);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_SIZES_NUM);
+
+
+               /********************************************************************/
+
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_TYPE1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_DC1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_VOL1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_ID1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_SECRET1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_WIDTH1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_HEIGHT1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_SIZE1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_DATA1);
+
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_TYPE2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_DC2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_VOL2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_ID2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_SECRET2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_WIDTH2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_HEIGHT2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_SIZE2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_DATA2);
+
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_TYPE3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_DC3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_VOL3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_ID3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_SECRET3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_WIDTH3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_HEIGHT3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_SIZE3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_DATA3);
+
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_TYPE4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_DC4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_VOL4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_ID4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_SECRET4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_WIDTH4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_HEIGHT4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_SIZE4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_DATA4);
+
+
+               /********************************************************************/
+
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHONE_NO);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_FIRST_NAME);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_LAST_NAME);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_FILE_PATH);
+
+               col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+               ret = create_table(db, table_name, col_names, col_types);
+               if(!ret) {
+                       // error occured
+               }
+
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+
+               table_name = CHAT_INFO_TABLE_NAME;
+               col_names = NULL;
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_CHAT_ID);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_FLAGS);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_PRINT_TITLE);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_STRUCT_VERSION);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_PHOTO_ID);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_PHOTO_PATH);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_TITLE);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_NO_OF_USERS);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_USER_LIST_SIZE);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_USER_LIST_VERSION);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_INVITER_ID);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_CHAT_USERS);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_DATE);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_VERSION);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_ADMIN_ID);
+
+               col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_PRIMARY_KEY);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+               ret = create_table(db, table_name, col_names, col_types);
+               if(!ret) {
+                       // error occured
+               }
+
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+
+               table_name = PEER_INFO_TABLE_NAME;
+               col_names = NULL;
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_CHAT_ID);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_PEER_TYPE);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_FLAGS);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_LAST_MESSAGE_ID);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_LAST_MESSAGE_DATE);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_PRINT_NAME);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_STRUCT_VERSION);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_NO_OF_UNREAD_MESSAGES);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_LAST_SEEN_TIME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PHOTO_PATH);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PHOTO_ID);
+
+               col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_PRIMARY_KEY);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+               ret = create_table(db, table_name, col_names, col_types);
+               if(!ret) {
+                       // error occured
+               }
+
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+
+               close_database(db);
+       }
+}
+
+void create_buddy_msg_table(const char* table_name)
+{
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       if(db && table_name) {
+               // create user info table
+               Eina_List* col_names = NULL;
+
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MESSAGE_ID);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_FLAGS);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_FWD_FROM_ID);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_FWD_DATE);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_FROM_ID);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_TO_ID);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_OUT_MSG);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_UNREAD);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_DATE);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_SERVICE);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MESSAGE);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MESSAGE_LENGTH);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MEDIA_TYPE);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MEDIA_ID);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_UNIQUE_ID);
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+               Eina_Bool ret = create_table(db, table_name, col_names, col_types);
+               if(!ret) {
+                       //("error: database creation failed");
+               }
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+               close_database(db);
+       }
+}
+
+void insert_buddy_msg_to_db(struct tgl_message *M)
+{
+       // get user name using id from buddy_info_table
+       int t = 0;
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       if(db) {
+#if 0
+               char* table_name = BUDDY_INFO_TABLE_NAME;
+
+               int user_id = M->from_id.id;
+               char usr_str[50];
+               sprintf(usr_str,"%d",user_id);
+
+               char* where_clause = (char*)malloc(strlen(BUDDY_INFO_TABLE_BUDDY_ID) + strlen(" = ") + strlen(usr_str));
+               strcpy(where_clause, BUDDY_INFO_TABLE_BUDDY_ID);
+               strcat(where_clause, " = ");
+               strcat(where_clause, usr_str);
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+               Eina_List* col_names = NULL;
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PHONE_NO);
+
+               Eina_List* vals = get_values_from_table_sync(db, table_name, col_names, col_types, where_clause);
+               close_database(db);
+
+               char* phone_no = NULL;
+
+               if(!vals) {
+                       //("DB error");
+                       return;
+               } else {
+                       int row_count = eina_list_count(vals);
+
+                       for (int i = 0 ; i < row_count ; i++) {
+                               Eina_List* row_vals = eina_list_nth(vals, i);
+                               phone_no = (char*)eina_list_nth(row_vals, 0);
+                               if(!phone_no) {
+                                       //("DB Error");
+                                       return;
+                               } else {
+                                       break;
+                               }
+                               eina_list_free(row_vals);
+                       }
+                       eina_list_free(vals);
+               }
+
+               if(phone_no) {
+                       char* tb_name = get_table_name_from_number(phone_no);
+                       insert_msg_into_db(M, tb_name, t);
+                       free(tb_name);
+                       free(phone_no);
+               }
+#else
+               int user_id = 0;
+               if (tgl_get_peer_type(M->to_id) == TGL_PEER_USER) {
+                       user_id = M->from_id.id;
+               } else if (tgl_get_peer_type(M->to_id) == TGL_PEER_CHAT) {
+                       user_id = M->to_id.id;
+               }
+               char* tb_name = get_table_name_from_number(user_id);
+               insert_msg_into_db(M, tb_name, t);
+               free(tb_name);
+#endif
+       }
+}
+
+void insert_peer_into_database(tgl_peer_t* UC, int last_msg_id, int unread_count)
+{
+       if (!UC) {
+               return;
+       }
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       if (db) {
+               char* table_name = PEER_INFO_TABLE_NAME;
+               Eina_List* col_names = NULL;
+               col_names = NULL;
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_CHAT_ID);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_PEER_TYPE);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_FLAGS);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_LAST_MESSAGE_ID);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_LAST_MESSAGE_DATE);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_PRINT_NAME);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_STRUCT_VERSION);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_NO_OF_UNREAD_MESSAGES);
+               col_names = eina_list_append(col_names, PEER_INFO_TABLE_LAST_SEEN_TIME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PHOTO_PATH);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PHOTO_ID);
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_PRIMARY_KEY);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+
+               Eina_List* col_values = NULL;
+               col_values = eina_list_append(col_values, &(UC->id.id));
+               col_values = eina_list_append(col_values, &(UC->id.type));
+               col_values = eina_list_append(col_values, &(UC->flags));
+               char last_msg_id_str[50];
+               sprintf(last_msg_id_str, "%d", last_msg_id);
+               col_values = eina_list_append(col_values, last_msg_id_str);
+
+               // last message date
+               if (UC->last) {
+                       col_values = eina_list_append(col_values, &(UC->last->date));
+               } else {
+                       int last_msg_date = 0;
+                       col_values = eina_list_append(col_values, &(last_msg_date));
+               }
+
+               if (UC->print_name) {
+                       col_values = eina_list_append(col_values, UC->print_name);
+               } else {
+                       col_values = eina_list_append(col_values, "");
+               }
+
+               col_values = eina_list_append(col_values, &(UC->structure_version));
+
+               col_values = eina_list_append(col_values, &(unread_count));
+
+               if (UC->id.type == TGL_PEER_USER ) {
+                       col_values = eina_list_append(col_values, &(UC->user.status.when));
+               } else if (UC->id.type == TGL_PEER_CHAT ) {
+                       col_values = eina_list_append(col_values, &(UC->chat.date));
+               } else {
+                       int last_seen = 0;
+                       col_values = eina_list_append(col_values, &(last_seen));
+               }
+
+               col_values = eina_list_append(col_values, "");
+
+
+
+               struct tgl_photo* photo = &(UC->photo);
+               int photo_id = -1;
+               if (photo) {
+                       photo_id = photo->id;
+               }
+               col_values = eina_list_append(col_values, &(photo_id));
+
+               Eina_Bool ret = insert_table(db, table_name, col_names, col_types,col_values);
+               if(!ret) {
+                       //("error: database creation failed");
+               } else {
+
+               }
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+               eina_list_free(col_values);
+               close_database(db);
+       }
+}
+
+void insert_msg_into_db(struct tgl_message *M, char* table_name, int unique_id)
+{
+       if(!M) {
+               return;
+       }
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       if(db) {
+               Eina_List* col_names = NULL;
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MESSAGE_ID);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_FLAGS);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_FWD_FROM_ID);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_FWD_DATE);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_FROM_ID);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_TO_ID);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_OUT_MSG);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_UNREAD);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_DATE);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_SERVICE);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MESSAGE);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MESSAGE_LENGTH);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MEDIA_TYPE);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MEDIA_ID);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_UNIQUE_ID);
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+               Eina_List* col_values = NULL;
+               col_values = eina_list_append(col_values, &(M->id));
+               col_values = eina_list_append(col_values, &(M->flags));
+               col_values = eina_list_append(col_values, &(M->fwd_from_id.id));
+               col_values = eina_list_append(col_values, &(M->fwd_date));
+               col_values = eina_list_append(col_values, &(M->from_id.id));
+               col_values = eina_list_append(col_values, &(M->to_id.id));
+               col_values = eina_list_append(col_values, &(M->out));
+               col_values = eina_list_append(col_values, &(M->unread));
+               col_values = eina_list_append(col_values, &(M->date));
+               col_values = eina_list_append(col_values, &(M->service));
+
+               if(M->message)
+                       col_values = eina_list_append(col_values, M->message);
+               else
+                       col_values = eina_list_append(col_values, " ");
+
+               col_values = eina_list_append(col_values, &(M->message_len));
+               col_values = eina_list_append(col_values, &(M->media.type));
+
+               char* dummy_val = "";
+               if(M->media.type == tgl_message_media_none) {
+                       col_values = eina_list_append(col_values, (dummy_val));
+               } else if(M->media.type == tgl_message_media_photo) {
+
+                       char* temp_media_id[50];
+                       sprintf(temp_media_id, "%lld", M->media.photo.id);
+
+                       col_values = eina_list_append(col_values, temp_media_id);
+               } else if(M->media.type == tgl_message_media_document) {
+
+                       char* temp_media_id[50];
+                       sprintf(temp_media_id, "%lld", M->media.document.dc_id);
+
+                       col_values = eina_list_append(col_values, temp_media_id);
+               } else if(M->media.type == tgl_message_media_geo) {
+                       col_values = eina_list_append(col_values, (dummy_val));
+               } else if(M->media.type == tgl_message_media_contact) {
+
+                       char* temp_media_id[50];
+                       sprintf(temp_media_id, "%lld",M->media.user_id);
+
+                       col_values = eina_list_append(col_values, temp_media_id);
+               } else if(M->media.type == tgl_message_media_unsupported) {
+                       col_values = eina_list_append(col_values, (dummy_val));
+               } else if(M->media.type == tgl_message_media_photo_encr) {
+
+                       char* temp_media_id[50];
+                       sprintf(temp_media_id, "%lld",M->media.encr_photo.id);
+
+                       col_values = eina_list_append(col_values, temp_media_id);
+               } else if(M->media.type == tgl_message_media_document_encr) {
+
+                       char* temp_media_id[50];
+                       sprintf(temp_media_id, "%lld",M->media.document.id);
+
+                       col_values = eina_list_append(col_values, temp_media_id);
+               } else  {
+                       col_values = eina_list_append(col_values, (dummy_val));
+               }
+
+               col_values = eina_list_append(col_values, &unique_id);
+
+               Eina_Bool ret = insert_table(db, table_name, col_names, col_types,col_values);
+               if(!ret) {
+                       //("error: database creation failed");
+               } else {
+
+               }
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+               eina_list_free(col_values);
+               close_database(db);
+       }
+}
+
+
+void update_msg_into_db(struct tgl_message *M, char* table_name, int unique_id)
+{
+       if(!M) {
+               return;
+       }
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       if(db) {
+               Eina_List* col_names = NULL;
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MESSAGE_ID);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_FLAGS);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_FWD_FROM_ID);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_FWD_DATE);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_FROM_ID);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_TO_ID);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_OUT_MSG);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_UNREAD);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_DATE);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_SERVICE);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MESSAGE);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MESSAGE_LENGTH);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MEDIA_TYPE);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_MEDIA_ID);
+               col_names = eina_list_append(col_names, MESSAGE_INFO_TABLE_UNIQUE_ID);
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+               Eina_List* col_values = NULL;
+               col_values = eina_list_append(col_values, &(M->id));
+               col_values = eina_list_append(col_values, &(M->flags));
+               col_values = eina_list_append(col_values, &(M->fwd_from_id.id));
+               col_values = eina_list_append(col_values, &(M->fwd_date));
+               col_values = eina_list_append(col_values, &(M->from_id.id));
+               col_values = eina_list_append(col_values, &(M->to_id.id));
+               col_values = eina_list_append(col_values, &(M->out));
+               col_values = eina_list_append(col_values, &(M->unread));
+               col_values = eina_list_append(col_values, &(M->date));
+               col_values = eina_list_append(col_values, &(M->service));
+
+               if(M->message)
+                       col_values = eina_list_append(col_values, M->message);
+               else
+                       col_values = eina_list_append(col_values, " ");
+
+               col_values = eina_list_append(col_values, &(M->message_len));
+               col_values = eina_list_append(col_values, &(M->media.type));
+
+               char* dummy_val = "";
+               if(M->media.type == tgl_message_media_none) {
+                       col_values = eina_list_append(col_values, (dummy_val));
+               } else if(M->media.type == tgl_message_media_photo) {
+
+                       char* temp_media_id[50];
+                       sprintf(temp_media_id, "%lld", M->media.photo.id);
+
+                       col_values = eina_list_append(col_values, temp_media_id);
+               } else if(M->media.type == tgl_message_media_document) {
+
+                       char* temp_media_id[50];
+                       sprintf(temp_media_id, "%lld", M->media.document.dc_id);
+
+                       col_values = eina_list_append(col_values, temp_media_id);
+               } else if(M->media.type == tgl_message_media_geo) {
+                       col_values = eina_list_append(col_values, (dummy_val));
+               } else if(M->media.type == tgl_message_media_contact) {
+
+                       char* temp_media_id[50];
+                       sprintf(temp_media_id, "%lld",M->media.user_id);
+
+                       col_values = eina_list_append(col_values, temp_media_id);
+               } else if(M->media.type == tgl_message_media_unsupported) {
+                       col_values = eina_list_append(col_values, (dummy_val));
+               } else if(M->media.type == tgl_message_media_photo_encr) {
+
+                       char* temp_media_id[50];
+                       sprintf(temp_media_id, "%lld",M->media.encr_photo.id);
+
+                       col_values = eina_list_append(col_values, temp_media_id);
+               } else if(M->media.type == tgl_message_media_document_encr) {
+
+                       char* temp_media_id[50];
+                       sprintf(temp_media_id, "%lld",M->media.document.id);
+
+                       col_values = eina_list_append(col_values, temp_media_id);
+               } else  {
+                       col_values = eina_list_append(col_values, (dummy_val));
+               }
+
+               int u_id = 0;
+               col_values = eina_list_append(col_values, &u_id);
+
+
+               char* where_clause = NULL;
+
+               if (unique_id > 0) {
+
+                       char usr_str[50];
+                       sprintf(usr_str,"%d",unique_id);
+                       where_clause = (char*)malloc(strlen(MESSAGE_INFO_TABLE_UNIQUE_ID) + strlen(" = ") + strlen(usr_str) + 1);
+                       strcpy(where_clause, MESSAGE_INFO_TABLE_UNIQUE_ID);
+                       strcat(where_clause, " = ");
+                       strcat(where_clause, usr_str);
+
+               } else {
+
+                       char usr_str[50];
+                       sprintf(usr_str,"%d",M->id);
+                       where_clause = (char*)malloc(strlen(MESSAGE_INFO_TABLE_MESSAGE_ID) + strlen(" = ") + strlen(usr_str) + 1);
+                       strcpy(where_clause, MESSAGE_INFO_TABLE_MESSAGE_ID);
+                       strcat(where_clause, " = ");
+                       strcat(where_clause, usr_str);
+
+               }
+
+               Eina_Bool ret = update_table(db, table_name, col_names, col_types, col_values, where_clause);
+
+               if(!ret) {
+                       //("error: database creation failed");
+               } else {
+
+               }
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+               eina_list_free(col_values);
+               close_database(db);
+       }
+}
+
+
+Eina_List* get_registered_user_info()
+{
+       Eina_List* user_details = NULL;
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       if(db) {
+               char* table_name = USER_INFO_TABLE_NAME;
+               Eina_List* col_names = NULL;
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_USER_ID);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_PRINT_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_STRUCTURE_VERSION);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_PHOTO_PATH);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_PHOTO_ID);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_FIRST_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_LAST_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_PHONE_NO);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_ACCESS_HASH);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_REAL_FIRST_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_REAL_LAST_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_USER_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_ONLINE_STATUS);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_LAST_SEEN_TIME);
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_PRIMARY_KEY);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+               user_details = get_values_from_table_sync(db, table_name, col_names, col_types, NULL);
+
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+       }
+       return user_details;
+}
+
+Eina_Bool is_chat_id_already_exists(struct tgl_chat *chat_info)
+{
+       // get chat name chat id from chat_info_table
+       int t = 0;
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       if(db) {
+               char* table_name = CHAT_INFO_TABLE_NAME;
+
+               int chat_id = chat_info->id.id;
+               char chat_str[50];
+               sprintf(chat_str,"%d",chat_id);
+
+               char* where_clause = (char*)malloc(strlen(CHAT_INFO_TABLE_CHAT_ID) + strlen(" = ") + strlen(chat_str));
+               strcpy(where_clause, CHAT_INFO_TABLE_CHAT_ID);
+               strcat(where_clause, " = ");
+               strcat(where_clause, chat_str);
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+               Eina_List* col_names = NULL;
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_TITLE);
+
+               Eina_List* vals = get_values_from_table_sync(db, table_name, col_names, col_types, where_clause);
+               close_database(db);
+
+               char* chat_name = NULL;
+
+               if(!vals) {
+                       //("DB error");
+                       return EINA_FALSE;
+               } else {
+                       int row_count = eina_list_count(vals);
+
+                       for (int i = 0 ; i < row_count ; i++) {
+                               Eina_List* row_vals = eina_list_nth(vals, i);
+                               chat_name = (char*)eina_list_nth(row_vals, 0);
+                               if(!chat_name) {
+                                       //("DB Error");
+                                       return EINA_FALSE;
+                               } else {
+                                       break;
+                               }
+                               eina_list_free(row_vals);
+                       }
+                       eina_list_free(vals);
+               }
+
+               if(chat_name) {
+                       free(chat_name);
+                       return EINA_TRUE;
+               }
+       }
+       return EINA_FALSE;
+}
+
+void insert_buddy_into_db(char* table_name, struct tgl_user* U)
+{
+       if(!U) {
+               return;
+       }
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       if(db) {
+               Eina_List* col_names = NULL;
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_USER_ID);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_PRINT_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_STRUCTURE_VERSION);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_PHOTO_PATH);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_PHOTO_ID);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_FIRST_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_LAST_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_PHONE_NO);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_ACCESS_HASH);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_REAL_FIRST_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_REAL_LAST_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_USER_NAME);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_ONLINE_STATUS);
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_LAST_SEEN_TIME);
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_PRIMARY_KEY);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+               Eina_List* col_values = NULL;
+               col_values = eina_list_append(col_values, &(U->id.id));
+               if(U->print_name)
+                       col_values = eina_list_append(col_values, U->print_name);
+               else
+                       col_values = eina_list_append(col_values, "");
+
+               col_values = eina_list_append(col_values, &(U->structure_version));
+               col_values = eina_list_append(col_values, "");
+               col_values = eina_list_append(col_values, &(U->photo_id));
+
+               if(U->first_name)
+                       col_values = eina_list_append(col_values, U->first_name);
+               else
+                       col_values = eina_list_append(col_values, "");
+               if(U->last_name)
+                       col_values = eina_list_append(col_values, U->last_name);
+               else
+                       col_values = eina_list_append(col_values, "");
+
+               if(U->phone)
+                       col_values = eina_list_append(col_values, U->phone);
+               else
+                       col_values = eina_list_append(col_values, "");
+
+               col_values = eina_list_append(col_values, &(U->access_hash));
+
+               if(U->real_first_name)
+                       col_values = eina_list_append(col_values, U->real_first_name);
+               else
+                       col_values = eina_list_append(col_values, "");
+
+               if(U->real_last_name)
+                       col_values = eina_list_append(col_values, U->real_last_name);
+               else
+                       col_values = eina_list_append(col_values, "");
+
+               if(U->username)
+                       col_values = eina_list_append(col_values, U->username);
+               else
+                       col_values = eina_list_append(col_values, "");
+
+               col_values = eina_list_append(col_values, &(U->status.online));
+               col_values = eina_list_append(col_values, &(U->status.when));
+
+               Eina_Bool ret = insert_table(db, table_name, col_names, col_types,col_values);
+               if(!ret) {
+                       // already exist. So update the table
+                       char* where_clause = NULL;
+                       char user_id_str[50];
+                       sprintf(user_id_str,"%d",U->id.id);
+                       where_clause = (char*)malloc(strlen(USER_INFO_TABLE_USER_ID) + strlen(" = ") + strlen(user_id_str) + 1);
+                       strcpy(where_clause, USER_INFO_TABLE_USER_ID);
+                       strcat(where_clause, " = ");
+                       strcat(where_clause, user_id_str);
+                       ret = update_table(db, table_name, col_names, col_types, col_values, where_clause);
+               } else {
+                       // successfully inserted.
+               }
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+               eina_list_free(col_values);
+               close_database(db);
+       }
+}
+
+void insert_chat_info_to_db(struct tgl_chat *chat_info, char* photo_path)
+{
+       if (!chat_info) {
+               return;
+       }
+       char* table_name = CHAT_INFO_TABLE_NAME;
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       if(db) {
+               Eina_List* col_names = NULL;
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_CHAT_ID);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_FLAGS);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_PRINT_TITLE);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_STRUCT_VERSION);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_PHOTO_ID);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_PHOTO_PATH);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_TITLE);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_NO_OF_USERS);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_USER_LIST_SIZE);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_USER_LIST_VERSION);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_INVITER_ID);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_CHAT_USERS);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_DATE);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_VERSION);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_ADMIN_ID);
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_PRIMARY_KEY);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+               Eina_List* col_values = NULL;
+               col_values = eina_list_append(col_values, &(chat_info->id.id));
+               col_values = eina_list_append(col_values, &(chat_info->flags));
+
+               if(chat_info->print_title)
+                       col_values = eina_list_append(col_values, chat_info->print_title);
+               else
+                       col_values = eina_list_append(col_values, "");
+
+               col_values = eina_list_append(col_values, &(chat_info->structure_version));
+
+               long long photo_id = chat_info->photo.id;
+
+               char photo_id_str[50];
+               sprintf(photo_id_str, "%lld", photo_id);
+               col_values = eina_list_append(col_values, photo_id_str);
+
+               if (photo_path) {
+                       col_values = eina_list_append(col_values, photo_path);
+               } else {
+                       col_values = eina_list_append(col_values, " ");
+               }
+
+               if(chat_info->title)
+                       col_values = eina_list_append(col_values, chat_info->title);
+               else
+                       col_values = eina_list_append(col_values, "");
+
+               col_values = eina_list_append(col_values, &(chat_info->users_num));
+               col_values = eina_list_append(col_values, &(chat_info->user_list_size));
+               col_values = eina_list_append(col_values, &(chat_info->user_list_version));
+
+               int inventor_id = 0;
+               if (chat_info->user_list) {
+                       inventor_id = chat_info->user_list[0].inviter_id;
+               }
+
+               col_values = eina_list_append(col_values, &(inventor_id));
+
+               /****** add chat users list ********/
+               char* full_ids = NULL;
+               if (chat_info->user_list) {
+                       char* chat_user_ids[chat_info->user_list_size];
+                       int total_len = 0;
+                       for (int i = 0; i < chat_info->user_list_size; i++) {
+                               char temp_user_id[15];
+                               int temp_id = chat_info->user_list[i].user_id;
+                               sprintf(temp_user_id,"%d",temp_id);
+                               chat_user_ids[i] = (char*)malloc(strlen(temp_user_id) + 1);
+                               strcpy(chat_user_ids[i], temp_user_id);
+                               total_len = total_len + strlen(temp_user_id);
+                               total_len = total_len + 1; // delimitor
+                       }
+
+                       full_ids = (char*)malloc(total_len);
+                       for (int i = 0; i < chat_info->user_list_size; i++) {
+                               if (i == 0) {
+                                       strcpy(full_ids, chat_user_ids[i]);
+                               } else {
+                                       strcat(full_ids, chat_user_ids[i]);
+                               }
+                               if (i < chat_info->user_list_size - 1) {
+                                       strcat(full_ids, ",");
+                               }
+                               free(chat_user_ids[i]);
+                       }
+               } else {
+                       full_ids = (char*)malloc(2);
+                       strcpy(full_ids, " ");
+               }
+
+               col_values = eina_list_append(col_values, full_ids);
+               /****** add chat users list ********/
+
+               col_values = eina_list_append(col_values, &(chat_info->date));
+               col_values = eina_list_append(col_values, &(chat_info->version));
+               col_values = eina_list_append(col_values, &(chat_info->admin_id));
+
+               Eina_Bool ret = insert_table(db, table_name, col_names, col_types,col_values);
+               if(!ret) {
+                       // already exist. So update the table
+                       char* where_clause = NULL;
+                       char chat_id_str[50];
+                       sprintf(chat_id_str,"%d", chat_info->id.id);
+                       where_clause = (char*)malloc(strlen(CHAT_INFO_TABLE_CHAT_ID) + strlen(" = ") + strlen(chat_id_str) + 1);
+                       strcpy(where_clause, CHAT_INFO_TABLE_CHAT_ID);
+                       strcat(where_clause, " = ");
+                       strcat(where_clause, chat_id_str);
+                       ret = update_table(db, table_name, col_names, col_types, col_values, where_clause);
+               } else {
+
+               }
+               free(full_ids);
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+               eina_list_free(col_values);
+               close_database(db);
+       }
+}
+
+void update_chat_info_to_db(struct tgl_chat *chat_info, char* photo_path)
+{
+       if (!chat_info) {
+               return;
+       }
+       char* table_name = CHAT_INFO_TABLE_NAME;
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       if(db) {
+               Eina_List* col_names = NULL;
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_CHAT_ID);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_FLAGS);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_PRINT_TITLE);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_STRUCT_VERSION);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_PHOTO_ID);
+               if (photo_path) {
+                       col_names = eina_list_append(col_names, CHAT_INFO_TABLE_PHOTO_PATH);
+               }
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_TITLE);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_NO_OF_USERS);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_USER_LIST_SIZE);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_USER_LIST_VERSION);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_INVITER_ID);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_CHAT_USERS);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_DATE);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_VERSION);
+               col_names = eina_list_append(col_names, CHAT_INFO_TABLE_ADMIN_ID);
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_PRIMARY_KEY);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               if (photo_path) {
+                       col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               }
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+               Eina_List* col_values = NULL;
+               col_values = eina_list_append(col_values, &(chat_info->id.id));
+               col_values = eina_list_append(col_values, &(chat_info->flags));
+
+               if(chat_info->print_title)
+                       col_values = eina_list_append(col_values, chat_info->print_title);
+               else
+                       col_values = eina_list_append(col_values, "");
+
+               col_values = eina_list_append(col_values, &(chat_info->structure_version));
+
+               long long photo_id = chat_info->photo.id;
+
+               char photo_id_str[50];
+               sprintf(photo_id_str, "%lld", photo_id);
+               col_values = eina_list_append(col_values, photo_id_str);
+
+               if (photo_path) {
+                       col_values = eina_list_append(col_values, photo_path);
+               }
+
+               if(chat_info->title)
+                       col_values = eina_list_append(col_values, chat_info->title);
+               else
+                       col_values = eina_list_append(col_values, "");
+
+               col_values = eina_list_append(col_values, &(chat_info->users_num));
+               col_values = eina_list_append(col_values, &(chat_info->user_list_size));
+               col_values = eina_list_append(col_values, &(chat_info->user_list_version));
+
+               int inventor_id = 0;
+               if (chat_info->user_list) {
+                       inventor_id = chat_info->user_list[0].inviter_id;
+               }
+
+               col_values = eina_list_append(col_values, &(inventor_id));
+
+               /****** add chat users list ********/
+               char* full_ids = NULL;
+               if (chat_info->user_list) {
+                       char* chat_user_ids[chat_info->user_list_size];
+                       int total_len = 0;
+                       for (int i = 0; i < chat_info->user_list_size; i++) {
+                               char temp_user_id[15];
+                               int temp_id = chat_info->user_list[i].user_id;
+                               sprintf(temp_user_id,"%d",temp_id);
+                               chat_user_ids[i] = (char*)malloc(strlen(temp_user_id) + 1);
+                               strcpy(chat_user_ids[i], temp_user_id);
+                               total_len = total_len + strlen(temp_user_id);
+                               total_len = total_len + 1; // delimitor
+                       }
+
+                       full_ids = (char*)malloc(total_len);
+                       for (int i = 0; i < chat_info->user_list_size; i++) {
+                               if (i == 0) {
+                                       strcpy(full_ids, chat_user_ids[i]);
+                               } else {
+                                       strcat(full_ids, chat_user_ids[i]);
+                               }
+                               if (i < chat_info->user_list_size - 1) {
+                                       strcat(full_ids, ",");
+                               }
+                       }
+               } else {
+                       full_ids = (char*)malloc(2);
+                       strcpy(full_ids, " ");
+               }
+
+               col_values = eina_list_append(col_values, full_ids);
+               /****** add chat users list ********/
+
+               col_values = eina_list_append(col_values, &(chat_info->date));
+               col_values = eina_list_append(col_values, &(chat_info->version));
+               col_values = eina_list_append(col_values, &(chat_info->admin_id));
+
+               char* where_clause = NULL;
+
+               char chat_id_str[50];
+               sprintf(chat_id_str,"%d",chat_info->id.id);
+               where_clause = (char*)malloc(strlen(CHAT_INFO_TABLE_CHAT_ID) + strlen(" = ") + strlen(chat_id_str) + 1);
+               strcpy(where_clause, CHAT_INFO_TABLE_CHAT_ID);
+               strcat(where_clause, " = ");
+               strcat(where_clause, chat_id_str);
+
+               Eina_Bool ret = update_table(db, table_name, col_names, col_types, col_values, where_clause);
+
+               if(!ret) {
+                       // error handling
+               } else {
+
+               }
+
+               free(full_ids);
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+               eina_list_free(col_values);
+               close_database(db);
+       }
+}
+
+void update_buddy_pic_db(char* file_path, char* table_name, int id)
+{
+       if (!file_path || !table_name) {
+               return;
+       }
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       if(db) {
+               Eina_List* col_names = NULL;
+               col_names = eina_list_append(col_names, USER_INFO_TABLE_PHOTO_PATH);
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+               Eina_List* col_values = NULL;
+               col_values = eina_list_append(col_values, file_path);
+
+               char* where_clause = NULL;
+
+               char usr_str[50];
+               sprintf(usr_str,"%d",id);
+               where_clause = (char*)malloc(strlen(USER_INFO_TABLE_USER_ID) + strlen(" = ") + strlen(usr_str) + 1);
+               strcpy(where_clause, USER_INFO_TABLE_USER_ID);
+               strcat(where_clause, " = ");
+               strcat(where_clause, usr_str);
+
+               Eina_Bool ret = update_table(db, table_name, col_names, col_types, col_values, where_clause);
+
+               if(!ret) {
+                       // error handling
+               } else {
+
+               }
+               free(where_clause);
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+               eina_list_free(col_values);
+               close_database(db);
+       }
+}
+
+Eina_List* get_buddy_info(int buddy_id)
+{
+       Eina_List* user_details = NULL;
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       if(db) {
+               char* table_name = BUDDY_INFO_TABLE_NAME;
+               Eina_List* col_names = NULL;
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_BUDDY_ID);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PRINT_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_STRUCTURE_VERSION);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PHOTO_PATH);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PHOTO_ID);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_FIRST_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_LAST_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_PHONE_NO);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_ACCESS_HASH);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_REAL_FIRST_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_REAL_LAST_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_BUDDY_NAME);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_ONLINE_STATUS);
+               col_names = eina_list_append(col_names, BUDDY_INFO_TABLE_LAST_SEEN_TIME);
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER_PRIMARY_KEY);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+               char buddy_id_str[50];
+               sprintf(buddy_id_str, "%d", buddy_id);
+
+               char* where_clause = (char*)malloc(strlen(BUDDY_INFO_TABLE_BUDDY_ID) + strlen(" = ") + strlen(buddy_id_str) + 1);
+               strcpy(where_clause, BUDDY_INFO_TABLE_BUDDY_ID);
+               strcat(where_clause, " = ");
+               strcat(where_clause, buddy_id_str);
+
+               user_details = get_values_from_table_sync(db, table_name, col_names, col_types, where_clause);
+               free(where_clause);
+
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+       }
+       return user_details;
+}
+
+void update_receive_media_info_in_db(long long media_id, char* file_path)
+{
+       if(!file_path) {
+               return;
+       }
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       char* table_name = MEDIA_INFO_TABLE_NAME;
+
+       if (db) {
+               Eina_List* col_names = NULL;
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_FILE_PATH);
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+               Eina_List* col_values = NULL;
+               col_values = eina_list_append(col_values, file_path);
+
+               char media_id_str[50];
+               sprintf(media_id_str, "%lld", media_id);
+
+               char* where_clause = (char*)malloc(strlen(MEDIA_INFO_TABLE_MEDIA_ID) + strlen(" = '") + strlen(media_id_str) + strlen("'") + 1);
+               strcpy(where_clause, MEDIA_INFO_TABLE_MEDIA_ID);
+               strcat(where_clause, " = '");
+               strcat(where_clause, media_id_str);
+               strcat(where_clause, "'");
+
+               Eina_Bool ret = update_table(db, table_name, col_names, col_types, col_values, where_clause);
+
+               if(!ret) {
+                       // error handling
+               } else {
+
+               }
+               free(where_clause);
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+               eina_list_free(col_values);
+               close_database(db);
+       }
+}
+
+void insert_media_info_to_db(struct tgl_message *M, char* file_path)
+{
+       if(!M) {
+               return;
+       }
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       char* table_name = MEDIA_INFO_TABLE_NAME;
+
+       if(db) {
+               Eina_List* col_names = NULL;
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_MEDIA_ID);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_MEDIA_TYPE);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_ACCESS_HASH);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_USER_ID);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_DATE);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_CAPTION);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_LONGITUDE);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_LATITUDE);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_SIZES_NUM);
+
+
+               /********************************************************************/
+
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_TYPE1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_DC1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_VOL1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_ID1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_SECRET1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_WIDTH1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_HEIGHT1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_SIZE1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_DATA1);
+
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_TYPE2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_DC2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_VOL2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_ID2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_SECRET2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_WIDTH2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_HEIGHT2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_SIZE2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_DATA2);
+
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_TYPE3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_DC3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_VOL3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_ID3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_SECRET3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_WIDTH3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_HEIGHT3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_SIZE3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_DATA3);
+
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_TYPE4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_DC4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_VOL4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_ID4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_SECRET4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_WIDTH4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_HEIGHT4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_SIZE4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_DATA4);
+
+
+               /********************************************************************/
+
+
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHONE_NO);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_FIRST_NAME);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_LAST_NAME);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_FILE_PATH);
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+               Eina_List* col_values = NULL;
+
+
+               int media_type = M->media.type;
+
+               if (media_type == tgl_message_media_photo) {
+
+                       char photo_id_str[50];
+                       sprintf(photo_id_str, "%lld", M->media.photo.id);
+
+                       col_values = eina_list_append(col_values, photo_id_str);
+                       col_values = eina_list_append(col_values, &(media_type));
+
+
+                       char access_hash_str[50];
+                       sprintf(access_hash_str, "%lld", M->media.photo.access_hash);
+
+                       col_values = eina_list_append(col_values, access_hash_str);
+                       col_values = eina_list_append(col_values, &(M->media.photo.user_id));
+                       col_values = eina_list_append(col_values, &(M->media.photo.date));
+
+                       if(M->media.photo.caption)
+                               col_values = eina_list_append(col_values, M->media.photo.caption);
+                       else
+                               col_values = eina_list_append(col_values, "");
+
+                       double longitude = M->media.photo.geo.longitude;
+                       double latitude = M->media.photo.geo.latitude;
+
+                       char long_str[50];
+                       sprintf(long_str,"%lf",longitude);
+
+                       char lat_str[50];
+                       sprintf(lat_str,"%lf",latitude);
+
+                       col_values = eina_list_append(col_values, long_str);
+                       col_values = eina_list_append(col_values, long_str);
+                       col_values = eina_list_append(col_values, &(M->media.photo.sizes_num));
+
+
+                       int i = 0;
+                       for (i = 0; i < M->media.photo.sizes_num; i++) {
+                               //struct tgl_photo_size photo_size = M->media.photo->sizes[i];
+
+                               char* photo_type = M->media.photo.sizes[i].type;
+                               if(photo_type) {
+                                       col_values = eina_list_append(col_values, photo_type);
+                               } else {
+                                       col_values = eina_list_append(col_values, "");
+                               }
+
+                               int photo_loc_dc = M->media.photo.sizes[i].loc.dc;
+                               col_values = eina_list_append(col_values, &photo_loc_dc);
+
+
+
+                               char photo_loc_vol_str[50];
+                               sprintf(photo_loc_vol_str, "%lld", M->media.photo.sizes[i].loc.volume);
+
+                               col_values = eina_list_append(col_values, photo_loc_vol_str);
+
+                               int photo_loc_id = M->media.photo.sizes[i].loc.local_id;
+                               col_values = eina_list_append(col_values, &photo_loc_id);
+
+
+                               char photo_loc_sec_str[50];
+                               sprintf(photo_loc_sec_str, "%lld", M->media.photo.sizes[i].loc.secret);
+
+                               col_values = eina_list_append(col_values, photo_loc_sec_str);
+
+                               int photo_width = M->media.photo.sizes[i].w;
+                               col_values = eina_list_append(col_values, &photo_width);
+
+                               int photo_height = M->media.photo.sizes[i].h;
+                               col_values = eina_list_append(col_values, &photo_height);
+
+                               int pic_size = M->media.photo.sizes[i].size;
+                               col_values = eina_list_append(col_values, &pic_size);
+
+                               char* photo_data = M->media.photo.sizes[i].data;
+                               if (photo_data) {
+                                       col_values = eina_list_append(col_values, photo_data);
+                               } else {
+                                       col_values = eina_list_append(col_values, "");
+                               }
+                       }
+
+                       int j = i;
+                       for (j = i; j < 4; j++) {
+
+                               char* photo_type = "";
+                               col_values = eina_list_append(col_values, photo_type);
+
+                               int photo_loc_dc = -1;
+                               col_values = eina_list_append(col_values, &photo_loc_dc);
+
+                               int photo_loc_vol = -1;
+                               col_values = eina_list_append(col_values, "");
+
+                               int photo_loc_id = -1;
+                               col_values = eina_list_append(col_values, &photo_loc_id);
+
+
+                               col_values = eina_list_append(col_values, "");
+
+                               int photo_width = -1;
+                               col_values = eina_list_append(col_values, &photo_width);
+
+                               int photo_height = -1;
+                               col_values = eina_list_append(col_values, &photo_height);
+
+                               int photo_size = -1;
+                               col_values = eina_list_append(col_values, &photo_size);
+
+                               char* photo_data = "";
+                               col_values = eina_list_append(col_values, photo_data);
+
+                       }
+
+
+               } else if (media_type == tgl_message_media_document) {
+
+                       col_values = eina_list_append(col_values, &(M->media.document.id));
+                       col_values = eina_list_append(col_values, &(media_type));
+                       col_values = eina_list_append(col_values, &(M->media.document.access_hash));
+                       col_values = eina_list_append(col_values, &(M->media.document.user_id));
+                       col_values = eina_list_append(col_values, &(M->media.document.date));
+
+                       if(M->media.document.caption)
+                               col_values = eina_list_append(col_values, M->media.document.caption);
+                       else
+                               col_values = eina_list_append(col_values, "");
+
+                       double longitude = 0.0f;
+                       double latitude = 0.0f;
+
+                       char long_str[50];
+                       sprintf(long_str,"%lf",longitude);
+
+                       char lat_str[50];
+                       sprintf(lat_str,"%lf",latitude);
+
+                       col_values = eina_list_append(col_values, long_str);
+                       col_values = eina_list_append(col_values, long_str);
+                       col_values = eina_list_append(col_values, &(M->media.document.size));
+
+
+                       for (int j = 0; j < 4; j++) {
+
+                               char* photo_type = "";
+                               col_values = eina_list_append(col_values, photo_type);
+
+                               int photo_loc_dc = -1;
+                               col_values = eina_list_append(col_values, &photo_loc_dc);
+
+                               int photo_loc_vol = -1;
+                               col_values = eina_list_append(col_values, "");
+
+                               int photo_loc_id = -1;
+                               col_values = eina_list_append(col_values, &photo_loc_id);
+
+
+                               col_values = eina_list_append(col_values, "");
+
+                               int photo_width = -1;
+                               col_values = eina_list_append(col_values, &photo_width);
+
+                               int photo_height = -1;
+                               col_values = eina_list_append(col_values, &photo_height);
+
+                               int photo_size = -1;
+                               col_values = eina_list_append(col_values, &photo_size);
+
+                               char* photo_data = "";
+                               col_values = eina_list_append(col_values, photo_data);
+
+                       }
+               } else {
+                       // To be checked
+                       int dummy = 0;
+                       col_values = eina_list_append(col_values, &(dummy));
+                       col_values = eina_list_append(col_values, &(media_type));
+                       col_values = eina_list_append(col_values, &(dummy));
+                       col_values = eina_list_append(col_values, &(dummy));
+                       col_values = eina_list_append(col_values, &(dummy));
+
+                       col_values = eina_list_append(col_values, "");
+
+                       double longitude = 0.0f;
+                       double latitude = 0.0f;
+
+                       char long_str[50];
+                       sprintf(long_str,"%lf",longitude);
+
+                       char lat_str[50];
+                       sprintf(lat_str,"%lf",latitude);
+
+                       col_values = eina_list_append(col_values, long_str);
+                       col_values = eina_list_append(col_values, long_str);
+                       col_values = eina_list_append(col_values, &(dummy));
+
+                       for (int j = 0; j < 4; j++) {
+
+                               char* photo_type = "";
+                               col_values = eina_list_append(col_values, photo_type);
+
+                               int photo_loc_dc = -1;
+                               col_values = eina_list_append(col_values, &photo_loc_dc);
+
+                               int photo_loc_vol = -1;
+                               col_values = eina_list_append(col_values, "");
+
+                               int photo_loc_id = -1;
+                               col_values = eina_list_append(col_values, &photo_loc_id);
+
+
+                               col_values = eina_list_append(col_values, "");
+
+                               int photo_width = -1;
+                               col_values = eina_list_append(col_values, &photo_width);
+
+                               int photo_height = -1;
+                               col_values = eina_list_append(col_values, &photo_height);
+
+                               int photo_size = -1;
+                               col_values = eina_list_append(col_values, &photo_size);
+
+                               char* photo_data = "";
+                               col_values = eina_list_append(col_values, photo_data);
+                       }
+               }
+
+               if(M->media.phone) {
+                       //col_values = eina_list_append(col_values, M->media.phone);
+                       col_values = eina_list_append(col_values, "");
+               } else {
+                       col_values = eina_list_append(col_values, "");
+               }
+
+               if(M->media.first_name) {
+                       //col_values = eina_list_append(col_values, M->media.first_name);
+                       col_values = eina_list_append(col_values, "");
+               } else {
+                       col_values = eina_list_append(col_values, "");
+               }
+
+               if(M->media.last_name) {
+                       //col_values = eina_list_append(col_values, M->media.last_name);
+                       col_values = eina_list_append(col_values, "");
+               } else {
+                       col_values = eina_list_append(col_values, "");
+               }
+
+               if(file_path) {
+                       col_values = eina_list_append(col_values, file_path);
+               } else {
+                       col_values = eina_list_append(col_values, "");
+               }
+
+               Eina_Bool ret = insert_table(db, table_name, col_names, col_types,col_values);
+               if(!ret) {
+                       //("error: database creation failed");
+               } else {
+
+               }
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+               eina_list_free(col_values);
+               close_database(db);
+       }
+}
+
+
+void update_sent_media_info_in_db(struct tgl_message *M, long long unique_val)
+{
+       if(!M) {
+               return;
+       }
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       char* table_name = MEDIA_INFO_TABLE_NAME;
+
+       if(db) {
+               Eina_List* col_names = NULL;
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_MEDIA_ID);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_MEDIA_TYPE);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_ACCESS_HASH);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_USER_ID);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_DATE);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_CAPTION);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_LONGITUDE);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_LATITUDE);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_SIZES_NUM);
+
+
+               /********************************************************************/
+
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_TYPE1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_DC1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_VOL1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_ID1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_SECRET1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_WIDTH1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_HEIGHT1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_SIZE1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_DATA1);
+
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_TYPE2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_DC2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_VOL2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_ID2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_SECRET2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_WIDTH2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_HEIGHT2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_SIZE2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_DATA2);
+
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_TYPE3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_DC3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_VOL3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_ID3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_SECRET3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_WIDTH3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_HEIGHT3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_SIZE3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_DATA3);
+
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_TYPE4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_DC4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_VOL4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_ID4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_SECRET4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_WIDTH4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_HEIGHT4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_SIZE4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_DATA4);
+
+
+               /********************************************************************/
+
+
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHONE_NO);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_FIRST_NAME);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_LAST_NAME);
+
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+
+               Eina_List* col_values = NULL;
+
+
+               int media_type = M->media.type;
+
+               if (media_type == tgl_message_media_photo) {
+
+                       char photo_id_str[50];
+                       sprintf(photo_id_str, "%lld", M->media.photo.id);
+
+                       col_values = eina_list_append(col_values, photo_id_str);
+                       col_values = eina_list_append(col_values, &(media_type));
+
+
+                       char access_hash_str[50];
+                       sprintf(access_hash_str, "%lld", M->media.photo.access_hash);
+
+                       col_values = eina_list_append(col_values, access_hash_str);
+                       col_values = eina_list_append(col_values, &(M->media.photo.user_id));
+                       col_values = eina_list_append(col_values, &(M->media.photo.date));
+
+                       if(M->media.photo.caption)
+                               col_values = eina_list_append(col_values, M->media.photo.caption);
+                       else
+                               col_values = eina_list_append(col_values, "");
+
+                       double longitude = M->media.photo.geo.longitude;
+                       double latitude = M->media.photo.geo.latitude;
+
+                       char long_str[50];
+                       sprintf(long_str,"%lf",longitude);
+
+                       char lat_str[50];
+                       sprintf(lat_str,"%lf",latitude);
+
+                       col_values = eina_list_append(col_values, long_str);
+                       col_values = eina_list_append(col_values, long_str);
+                       col_values = eina_list_append(col_values, &(M->media.photo.sizes_num));
+
+
+                       int i = 0;
+                       for (i = 0; i < M->media.photo.sizes_num; i++) {
+                               //struct tgl_photo_size photo_size = M->media.photo->sizes[i];
+
+                               char* photo_type = M->media.photo.sizes[i].type;
+                               if(photo_type) {
+                                       col_values = eina_list_append(col_values, photo_type);
+                               } else {
+                                       col_values = eina_list_append(col_values, "");
+                               }
+
+                               int photo_loc_dc = M->media.photo.sizes[i].loc.dc;
+                               col_values = eina_list_append(col_values, &photo_loc_dc);
+
+
+
+                               char photo_loc_vol_str[50];
+                               sprintf(photo_loc_vol_str, "%lld", M->media.photo.sizes[i].loc.volume);
+
+                               col_values = eina_list_append(col_values, photo_loc_vol_str);
+
+                               int photo_loc_id = M->media.photo.sizes[i].loc.local_id;
+                               col_values = eina_list_append(col_values, &photo_loc_id);
+
+
+                               char photo_loc_sec_str[50];
+                               sprintf(photo_loc_sec_str, "%lld", M->media.photo.sizes[i].loc.secret);
+
+                               col_values = eina_list_append(col_values, photo_loc_sec_str);
+
+                               int photo_width = M->media.photo.sizes[i].w;
+                               col_values = eina_list_append(col_values, &photo_width);
+
+                               int photo_height = M->media.photo.sizes[i].h;
+                               col_values = eina_list_append(col_values, &photo_height);
+
+                               int pic_size = M->media.photo.sizes[i].size;
+                               col_values = eina_list_append(col_values, &pic_size);
+
+                               char* photo_data = M->media.photo.sizes[i].data;
+                               if (photo_data) {
+                                       col_values = eina_list_append(col_values, photo_data);
+                               } else {
+                                       col_values = eina_list_append(col_values, "");
+                               }
+                       }
+
+                       int j = i;
+                       for (j = i; j < 4; j++) {
+
+                               char* photo_type = "";
+                               col_values = eina_list_append(col_values, photo_type);
+
+                               int photo_loc_dc = -1;
+                               col_values = eina_list_append(col_values, &photo_loc_dc);
+
+                               int photo_loc_vol = -1;
+                               col_values = eina_list_append(col_values, "");
+
+                               int photo_loc_id = -1;
+                               col_values = eina_list_append(col_values, &photo_loc_id);
+
+
+                               col_values = eina_list_append(col_values, "");
+
+                               int photo_width = -1;
+                               col_values = eina_list_append(col_values, &photo_width);
+
+                               int photo_height = -1;
+                               col_values = eina_list_append(col_values, &photo_height);
+
+                               int photo_size = -1;
+                               col_values = eina_list_append(col_values, &photo_size);
+
+                               char* photo_data = "";
+                               col_values = eina_list_append(col_values, photo_data);
+
+                       }
+
+
+               } else if (media_type == tgl_message_media_document) {
+
+                       col_values = eina_list_append(col_values, &(M->media.document.id));
+                       col_values = eina_list_append(col_values, &(media_type));
+                       col_values = eina_list_append(col_values, &(M->media.document.access_hash));
+                       col_values = eina_list_append(col_values, &(M->media.document.user_id));
+                       col_values = eina_list_append(col_values, &(M->media.document.date));
+
+                       if(M->media.document.caption)
+                               col_values = eina_list_append(col_values, M->media.document.caption);
+                       else
+                               col_values = eina_list_append(col_values, "");
+
+                       double longitude = 0.0f;
+                       double latitude = 0.0f;
+
+                       char long_str[50];
+                       sprintf(long_str,"%lf",longitude);
+
+                       char lat_str[50];
+                       sprintf(lat_str,"%lf",latitude);
+
+                       col_values = eina_list_append(col_values, long_str);
+                       col_values = eina_list_append(col_values, long_str);
+                       col_values = eina_list_append(col_values, &(M->media.document.size));
+
+
+                       for (int j = 0; j < 4; j++) {
+
+                               char* photo_type = "";
+                               col_values = eina_list_append(col_values, photo_type);
+
+                               int photo_loc_dc = -1;
+                               col_values = eina_list_append(col_values, &photo_loc_dc);
+
+                               int photo_loc_vol = -1;
+                               col_values = eina_list_append(col_values, "");
+
+                               int photo_loc_id = -1;
+                               col_values = eina_list_append(col_values, &photo_loc_id);
+
+
+                               col_values = eina_list_append(col_values, "");
+
+                               int photo_width = -1;
+                               col_values = eina_list_append(col_values, &photo_width);
+
+                               int photo_height = -1;
+                               col_values = eina_list_append(col_values, &photo_height);
+
+                               int photo_size = -1;
+                               col_values = eina_list_append(col_values, &photo_size);
+
+                               char* photo_data = "";
+                               col_values = eina_list_append(col_values, photo_data);
+
+                       }
+               } else {
+                       // To be checked
+                       int dummy = 0;
+                       col_values = eina_list_append(col_values, &(dummy));
+                       col_values = eina_list_append(col_values, &(media_type));
+                       col_values = eina_list_append(col_values, &(dummy));
+                       col_values = eina_list_append(col_values, &(dummy));
+                       col_values = eina_list_append(col_values, &(dummy));
+
+                       col_values = eina_list_append(col_values, "");
+
+                       double longitude = 0.0f;
+                       double latitude = 0.0f;
+
+                       char long_str[50];
+                       sprintf(long_str,"%lf",longitude);
+
+                       char lat_str[50];
+                       sprintf(lat_str,"%lf",latitude);
+
+                       col_values = eina_list_append(col_values, long_str);
+                       col_values = eina_list_append(col_values, long_str);
+                       col_values = eina_list_append(col_values, &(dummy));
+
+                       for (int j = 0; j < 4; j++) {
+
+                               char* photo_type = "";
+                               col_values = eina_list_append(col_values, photo_type);
+
+                               int photo_loc_dc = -1;
+                               col_values = eina_list_append(col_values, &photo_loc_dc);
+
+                               int photo_loc_vol = -1;
+                               col_values = eina_list_append(col_values, "");
+
+                               int photo_loc_id = -1;
+                               col_values = eina_list_append(col_values, &photo_loc_id);
+
+
+                               col_values = eina_list_append(col_values, "");
+
+                               int photo_width = -1;
+                               col_values = eina_list_append(col_values, &photo_width);
+
+                               int photo_height = -1;
+                               col_values = eina_list_append(col_values, &photo_height);
+
+                               int photo_size = -1;
+                               col_values = eina_list_append(col_values, &photo_size);
+
+                               char* photo_data = "";
+                               col_values = eina_list_append(col_values, photo_data);
+                       }
+               }
+
+               if(M->media.phone) {
+                       //col_values = eina_list_append(col_values, M->media.phone);
+                       col_values = eina_list_append(col_values, "");
+               } else {
+                       col_values = eina_list_append(col_values, "");
+               }
+
+               if(M->media.first_name) {
+                       //col_values = eina_list_append(col_values, M->media.first_name);
+                       col_values = eina_list_append(col_values, "");
+               } else {
+                       col_values = eina_list_append(col_values, "");
+               }
+
+               if(M->media.last_name) {
+                       //col_values = eina_list_append(col_values, M->media.last_name);
+                       col_values = eina_list_append(col_values, "");
+               } else {
+                       col_values = eina_list_append(col_values, "");
+               }
+
+
+               char* where_clause = NULL;
+               if(unique_val != 0 ) {
+                       char usr_str[50];
+                       sprintf(usr_str,"%lld",unique_val);
+                       where_clause = (char*)malloc(strlen(MEDIA_INFO_TABLE_MEDIA_ID) + strlen(" = '") + strlen(usr_str) + strlen("'") + 1);
+                       strcpy(where_clause, MEDIA_INFO_TABLE_MEDIA_ID);
+                       strcat(where_clause, " = '");
+                       strcat(where_clause, usr_str);
+                       strcat(where_clause, "'");
+               } else {
+                       char usr_str[50];
+                       sprintf(usr_str,"%lld",M->media.photo.id);
+                       where_clause = (char*)malloc(strlen(MEDIA_INFO_TABLE_MEDIA_ID) + strlen(" = '") + strlen(usr_str) + strlen("'") + 1);
+                       strcpy(where_clause, MEDIA_INFO_TABLE_MEDIA_ID);
+                       strcat(where_clause, " = '");
+                       strcat(where_clause, usr_str);
+                       strcat(where_clause, "'");
+               }
+
+               Eina_Bool ret = update_table(db, table_name, col_names, col_types, col_values, where_clause);
+
+               if(!ret) {
+                       //("error: database creation failed");
+               } else {
+
+               }
+               eina_list_free(col_names);
+               eina_list_free(col_types);
+               eina_list_free(col_values);
+               close_database(db);
+       }
+}
+
+
+Eina_List* get_image_details_from_db(long long media_id)
+{
+       Eina_List* vals = NULL;
+       sqlite3* db = create_database(DEFAULT_TG_DATABASE_PATH);
+       if(db) {
+               char* table_name = MEDIA_INFO_TABLE_NAME;
+
+               char usr_str[50];
+               sprintf(usr_str,"%lld",media_id);
+               char* where_clause = (char*)malloc(strlen(MEDIA_INFO_TABLE_MEDIA_ID) + strlen(" = ") + strlen(usr_str) + 1);
+               strcpy(where_clause, MEDIA_INFO_TABLE_MEDIA_ID);
+               strcat(where_clause, " = ");
+               strcat(where_clause, usr_str);
+
+               Eina_List* col_types = NULL;
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_INTEGER);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+               col_types = eina_list_append(col_types, TG_DB_COLUMN_TEXT);
+
+               Eina_List* col_names = NULL;
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_MEDIA_ID);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_MEDIA_TYPE);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_ACCESS_HASH);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_USER_ID);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_DATE);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_CAPTION);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_LONGITUDE);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_LATITUDE);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_SIZES_NUM);
+
+               /********************************************************************/
+
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_TYPE1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_DC1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_VOL1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_ID1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_SECRET1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_WIDTH1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_HEIGHT1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_SIZE1);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_DATA1);
+
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_TYPE2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_DC2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_VOL2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_ID2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_SECRET2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_WIDTH2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_HEIGHT2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_SIZE2);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_DATA2);
+
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_TYPE3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_DC3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_VOL3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_ID3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_SECRET3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_WIDTH3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_HEIGHT3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_SIZE3);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_DATA3);
+
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_TYPE4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_DC4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_VOL4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_ID4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_LOC_SECRET4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_WIDTH4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_HEIGHT4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_SIZE4);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHOTO_DATA4);
+
+               /********************************************************************/
+
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_PHONE_NO);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_FIRST_NAME);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_LAST_NAME);
+               col_names = eina_list_append(col_names, MEDIA_INFO_TABLE_FILE_PATH);
+
+               vals = get_values_from_table_sync(db, table_name, col_names, col_types, where_clause);
+               close_database(db);
+               eina_list_free(col_types);
+               eina_list_free(col_names);
+       }
+       return vals;
+}
+
+
diff --git a/tg-engine-service/src/tg_server.c b/tg-engine-service/src/tg_server.c
new file mode 100644 (file)
index 0000000..3f860e9
--- /dev/null
@@ -0,0 +1,182 @@
+/*
+ * tg_server.c
+ *
+ *  Created on: Jun 25, 2015
+ *      Author: sandeep
+ */
+
+#include "tg_server.h"
+#include "logger.h"
+#include <stdlib.h>
+#include <stdbool.h>
+#include <message_port.h>
+
+static int _tg_server_convert_msg_port_result(const int err);
+static void _on_message_received_cb(int port_id, const char *rem_app_name, const char *rem_port_name, bool trusted_message, bundle *rec_msg, void *user_data);
+
+tg_server *tg_server_create()
+{
+    tg_server *const proxy = calloc(1 , sizeof(tg_server));
+    return proxy;
+}
+
+void tg_server_destroy(tg_server *proxy_cl)
+{
+    if (proxy_cl)
+    {
+        message_port_unregister_local_port(proxy_cl->local_port_id);
+        free(proxy_cl->remote_port_name);
+        free(proxy_cl->remote_app_name);
+        free(proxy_cl);
+        proxy_cl = NULL;
+    }
+}
+
+int tg_server_register_port(tg_server *proxy_cl, const char *const port_name)
+{
+    int result = SVC_RES_FAIL;
+
+    RETVM_IF(!proxy_cl, result, "Proxy client is NULL");
+    RETVM_IF(!port_name, result, "Message port name is NULL");
+
+    int temp_id = message_port_register_local_port(port_name, _on_message_received_cb, proxy_cl);
+    if (temp_id < 0)
+    {
+        _tg_server_convert_msg_port_result(temp_id);
+        ERR("Failed to register local message port");
+        proxy_cl->local_port_id = 0;
+        return result;
+    }
+
+    DBG("Message port %s registered with id: %d", port_name, temp_id);
+    proxy_cl->local_port_id = temp_id;
+
+    return SVC_RES_OK;
+}
+
+int tg_server_send_message(tg_server *proxy_cl, bundle *const msg)
+{
+    int result = SVC_RES_FAIL;
+
+    RETVM_IF(!proxy_cl, result , "Proxy client is NULL");
+    RETVM_IF(!(proxy_cl->local_port_id), result, "Message port is not registered");
+    RETVM_IF(!(proxy_cl->remote_app_name), result, "Remote application name is not registered");
+    RETVM_IF(!(proxy_cl->remote_port_name), result, "Remote message port is not registered");
+
+    result = _tg_server_convert_msg_port_result(message_port_send_message_with_local_port(
+            proxy_cl->remote_app_name,
+            proxy_cl->remote_port_name,
+            msg,
+            proxy_cl->local_port_id));
+
+    RETVM_IF(result != SVC_RES_OK, result, "Failed to send bidirectional message to: %s:%s",
+            proxy_cl->remote_app_name,
+            proxy_cl->remote_port_name);
+
+    DBG("Message successfully send to: %s:%s", proxy_cl->remote_app_name, proxy_cl->remote_port_name);
+    return result;
+}
+
+int tg_server_register_msg_receive_callback(tg_server *proxy_cl, tg_server_callback_func callback_func, void *data)
+{
+    RETVM_IF(!proxy_cl, SVC_RES_FAIL, "Proxy client is NULL");
+
+    proxy_cl->cb_func = callback_func;
+    proxy_cl->cb_data = data;
+
+    return SVC_RES_OK;
+}
+
+int _tg_server_set_remote_data(tg_server *proxy_cl, const char *rem_app_name, const char *rem_port_name)
+{
+    RETVM_IF(!proxy_cl, SVC_RES_FAIL, "Proxy pointer is NULL");
+
+    char *temp_rem_app_name = NULL;
+    char *temp_rem_port_name = NULL;
+
+    if (!proxy_cl->remote_app_name && rem_app_name)
+    {
+        temp_rem_app_name = strdup(rem_app_name);
+        RETVM_IF(!temp_rem_app_name, SVC_RES_FAIL,
+                "Failed to set remote application name. Strdup failed");
+    }
+
+    if (!proxy_cl->remote_port_name && rem_port_name)
+    {
+        temp_rem_port_name = strdup(rem_port_name);
+        if (!temp_rem_port_name)
+        {
+            ERR("Failed to set remote port name. Strdup failed");
+            free(temp_rem_app_name);
+            return SVC_RES_FAIL;
+        }
+    }
+
+    if (temp_rem_app_name)
+    {
+        proxy_cl->remote_app_name = temp_rem_app_name;
+    }
+    if (temp_rem_port_name)
+    {
+        proxy_cl->remote_port_name = temp_rem_port_name;
+    }
+
+    return SVC_RES_OK;
+}
+
+static int _tg_server_convert_msg_port_result(const int err)
+{
+    int result = SVC_RES_FAIL;
+
+    switch (err)
+    {
+        case MESSAGE_PORT_ERROR_NONE:
+            result = SVC_RES_OK;
+            break;
+        case MESSAGE_PORT_ERROR_IO_ERROR:
+            ERR("MessagePort error: i/o error");
+            break;
+        case MESSAGE_PORT_ERROR_OUT_OF_MEMORY:
+            ERR("MessagePort error: out of memory");
+            break;
+        case MESSAGE_PORT_ERROR_INVALID_PARAMETER:
+            ERR("MessagePort error: invalid parameter");
+            break;
+        case MESSAGE_PORT_ERROR_PORT_NOT_FOUND:
+            ERR("MessagePort error: message port not found");
+            break;
+        case MESSAGE_PORT_ERROR_CERTIFICATE_NOT_MATCH:
+            ERR("MessagePort error: certificate not match");
+            break;
+        case MESSAGE_PORT_ERROR_MAX_EXCEEDED:
+            ERR("MessagePort error: max exceeded");
+            break;
+        default:
+            ERR("MessagePort error: unknown error");
+            break;
+    }
+
+    return result;
+}
+
+static void _on_message_received_cb(int port_id, const char *rem_app_name, const char *rem_port_name, bool trusted_message, bundle *rec_msg, void *user_data)
+{
+    DBG("Received message from port %d", port_id);
+
+    RETM_IF(!user_data, "user_data is NULL");
+
+    tg_server *proxy_cl = user_data;
+
+    int res = _tg_server_set_remote_data(proxy_cl, rem_app_name, rem_port_name);
+    RETM_IF(res != SVC_RES_OK ,"Failed to set remote data to message port");
+
+    if (proxy_cl->cb_func)
+    {
+        res = proxy_cl->cb_func(proxy_cl->cb_data, rec_msg);
+        RETM_IF(res != SVC_RES_OK ,"Message port callback function failed");
+    }
+    else
+    {
+        DBG("Message port callback function not set");
+    }
+}
diff --git a/tg-engine-service/tg_engine/tg_engine.c b/tg-engine-service/tg_engine/tg_engine.c
new file mode 100644 (file)
index 0000000..0849e64
--- /dev/null
@@ -0,0 +1,1840 @@
+/*
+ * tg_engine.c
+ *
+ *  Created on: Jun 24, 2015
+ *      Author: sandeep
+ */
+
+#include "tg_engine.h"
+#include "server_response.h"
+#include <pthread.h>
+#include <Ecore.h>
+#include "tg_db_wrapper.h"
+#include "tgl-fetch.h"
+
+#define DC_SERIALIZED_MAGIC 0x868aa81d
+#define STATE_FILE_MAGIC 0x28949a93
+#define SECRET_CHAT_FILE_MAGIC 0x37a1988a
+
+static void on_chat_info_received(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_chat *chat_info);
+static void on_buddy_info_loaded(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *U);
+
+void write_dc(struct tgl_dc *DC, void *extra)
+{
+       int auth_file_fd = *(int *)extra;
+       if (!DC) {
+               int x = 0;
+               assert(write(auth_file_fd, &x, 4) == 4);
+               return;
+       } else {
+               int x = 1;
+               assert(write(auth_file_fd, &x, 4) == 4);
+       }
+
+       assert(DC->has_auth);
+       assert(write(auth_file_fd, &DC->port, 4) == 4);
+       int l = strlen(DC->ip);
+       assert(write(auth_file_fd, &l, 4) == 4);
+       assert(write(auth_file_fd, DC->ip, l) == l);
+       assert(write(auth_file_fd, &DC->auth_key_id, 8) == 8);
+       assert(write(auth_file_fd, DC->auth_key, 256) == 256);
+}
+
+void write_auth_file(void)
+{
+       if (binlog_enabled)
+               return;
+       int auth_file_fd = open(get_auth_key_filename(), O_CREAT | O_RDWR, 0600);
+       assert(auth_file_fd >= 0);
+       int x = DC_SERIALIZED_MAGIC;
+       assert(write(auth_file_fd, &x, 4) == 4);
+       assert(write(auth_file_fd, &TLS->max_dc_num, 4) == 4);
+       assert(write(auth_file_fd, &TLS->dc_working_num, 4) == 4);
+       tgl_dc_iterator_ex(TLS, write_dc, &auth_file_fd);
+       assert(write(auth_file_fd, &TLS->our_id, 4) == 4);
+       close(auth_file_fd);
+}
+
+void read_dc(int auth_file_fd, int id, unsigned ver)
+{
+       int port = 0;
+       assert(read(auth_file_fd, &port, 4) == 4);
+       int l = 0;
+       assert(read(auth_file_fd, &l, 4) == 4);
+       assert(l >= 0 && l < 100);
+       char ip[100];
+       assert(read(auth_file_fd, ip, l) == l);
+       ip[l] = 0;
+
+       long long auth_key_id;
+       static unsigned char auth_key[256];
+       assert(read(auth_file_fd, &auth_key_id, 8) == 8);
+       assert(read(auth_file_fd, auth_key, 256) == 256);
+
+       //bl_do_add_dc(id, ip, l, port, auth_key_id, auth_key);
+       bl_do_dc_option(TLS, id, 2, "DC", l, ip, port);
+       bl_do_set_auth_key_id(TLS, id, auth_key);
+       bl_do_dc_signed(TLS, id);
+}
+
+void empty_auth_file(void)
+{
+       if (TLS->test_mode) {
+               bl_do_dc_option(TLS, 1, 0, "", strlen(TG_SERVER_TEST_1), TG_SERVER_TEST_1, 443);
+               bl_do_dc_option(TLS, 2, 0, "", strlen(TG_SERVER_TEST_2), TG_SERVER_TEST_2, 443);
+               bl_do_dc_option(TLS, 3, 0, "", strlen(TG_SERVER_TEST_3), TG_SERVER_TEST_3, 443);
+               bl_do_set_working_dc(TLS, 2);
+       } else {
+               bl_do_dc_option(TLS, 1, 0, "", strlen(TG_SERVER_1), TG_SERVER_1, 443);
+               bl_do_dc_option(TLS, 2, 0, "", strlen(TG_SERVER_2), TG_SERVER_2, 443);
+               bl_do_dc_option(TLS, 3, 0, "", strlen(TG_SERVER_3), TG_SERVER_3, 443);
+               bl_do_dc_option(TLS, 4, 0, "", strlen(TG_SERVER_4), TG_SERVER_4, 443);
+               bl_do_dc_option(TLS, 5, 0, "", strlen(TG_SERVER_5), TG_SERVER_5, 443);
+               bl_do_set_working_dc(TLS, 4);
+       }
+}
+
+void read_secret_chat(int fd, int v)
+{
+       int id, l, user_id, admin_id, date, ttl, layer, state;
+       long long access_hash, key_fingerprint;
+       static char s[1000];
+       static unsigned char key[256];
+       static unsigned char sha[20];
+       assert(read(fd, &id, 4) == 4);
+       //assert(read(fd, &flags, 4) == 4);
+       assert(read(fd, &l, 4) == 4);
+       assert(l > 0 && l < 1000);
+       assert(read(fd, s, l) == l);
+       assert(read(fd, &user_id, 4) == 4);
+       assert(read(fd, &admin_id, 4) == 4);
+       assert(read(fd, &date, 4) == 4);
+       assert(read(fd, &ttl, 4) == 4);
+       assert(read(fd, &layer, 4) == 4);
+       assert(read(fd, &access_hash, 8) == 8);
+       assert(read(fd, &state, 4) == 4);
+       assert(read(fd, &key_fingerprint, 8) == 8);
+       assert(read(fd, &key, 256) == 256);
+       if (v >= 2) {
+               assert(read(fd, sha, 20) == 20);
+       }
+       int in_seq_no = 0, out_seq_no = 0, last_in_seq_no = 0;
+       if (v >= 1) {
+               assert(read(fd, &in_seq_no, 4) == 4);
+               assert(read(fd, &last_in_seq_no, 4) == 4);
+               assert(read(fd, &out_seq_no, 4) == 4);
+       }
+
+       bl_do_encr_chat_create(TLS, id, user_id, admin_id, s, l);
+       struct tgl_secret_chat  *P =(void *)tgl_peer_get(TLS, TGL_MK_ENCR_CHAT(id));
+       assert(P &&(P->flags & FLAG_CREATED));
+       bl_do_encr_chat_set_date(TLS, P, date);
+       bl_do_encr_chat_set_ttl(TLS, P, ttl);
+       bl_do_encr_chat_set_layer(TLS ,P, layer);
+       bl_do_encr_chat_set_access_hash(TLS, P, access_hash);
+       bl_do_encr_chat_set_state(TLS, P, state);
+       bl_do_encr_chat_set_key(TLS, P, key, key_fingerprint);
+       if (v >= 2) {
+               bl_do_encr_chat_set_sha(TLS, P, sha);
+       } else {
+               SHA1((void *)key, 256, sha);
+               bl_do_encr_chat_set_sha(TLS, P, sha);
+       }
+       if (v >= 1) {
+               bl_do_encr_chat_set_seq(TLS, P, in_seq_no, last_in_seq_no, out_seq_no);
+       }
+}
+
+void read_secret_chat_file(void)
+{
+       if (binlog_enabled)
+               return;
+       int secret_chat_fd = open(get_secret_chat_filename(), O_RDWR, 0600);
+       if (secret_chat_fd < 0)
+               return;
+       //assert(secret_chat_fd >= 0);
+       int x;
+       if (read(secret_chat_fd, &x, 4) < 4) { close(secret_chat_fd); return; }
+       if (x != SECRET_CHAT_FILE_MAGIC) { close(secret_chat_fd); return; }
+       int v = 0;
+       assert(read(secret_chat_fd, &v, 4) == 4);
+       assert(v == 0 || v == 1 || v == 2); // version
+       assert(read(secret_chat_fd, &x, 4) == 4);
+       assert(x >= 0);
+       while(x --> 0) {
+               read_secret_chat(secret_chat_fd, v);
+       }
+       close(secret_chat_fd);
+}
+
+void read_state_file(void)
+{
+       if (binlog_enabled)
+               return;
+       int state_file_fd = open(get_state_filename(), O_CREAT | O_RDWR, 0600);
+       if (state_file_fd < 0)
+               return;
+
+       int version, magic;
+
+       if (read(state_file_fd, &magic, 4) < 4) {
+               close(state_file_fd);
+               return;
+       }
+
+       if (magic !=(int)STATE_FILE_MAGIC) {
+               close(state_file_fd);
+               return;
+       }
+
+       if (read(state_file_fd, &version, 4) < 4) {
+               close(state_file_fd);
+               return;
+       }
+
+       assert(version >= 0);
+       int x[4];
+
+       if (read(state_file_fd, x, 16) < 16) {
+               close(state_file_fd);
+               return;
+       }
+
+       int pts = x[0];
+       int qts = x[1];
+       int seq = x[2];
+       int date = x[3];
+       close(state_file_fd);
+       bl_do_set_seq(TLS, seq);
+       bl_do_set_pts(TLS, pts);
+       bl_do_set_qts(TLS, qts);
+       bl_do_set_date(TLS, date);
+}
+
+void read_auth_file(void)
+{
+       if (binlog_enabled)
+               return;
+       int auth_file_fd = open(get_auth_key_filename(), O_CREAT | O_RDWR, 0600);
+
+       if (auth_file_fd < 0) {
+               empty_auth_file();
+               return;
+       }
+
+       assert(auth_file_fd >= 0);
+       unsigned x;
+       unsigned m;
+
+       if (read(auth_file_fd, &m, 4) < 4 ||(m != DC_SERIALIZED_MAGIC)) {
+               close(auth_file_fd);
+               empty_auth_file();
+               return;
+       }
+
+       assert(read(auth_file_fd, &x, 4) == 4);
+       assert(x > 0);
+       int dc_working_num;
+       assert(read(auth_file_fd, &dc_working_num, 4) == 4);
+
+       int i;
+       for(i = 0; i <=(int)x; i++) {
+               int y;
+               assert(read(auth_file_fd, &y, 4) == 4);
+               if (y) {
+                       read_dc(auth_file_fd, i, m);
+               }
+       }
+
+       bl_do_set_working_dc(TLS, dc_working_num);
+       int our_id;
+       int l = read(auth_file_fd, &our_id, 4);
+
+       if (l < 4) {
+               assert(!l);
+       }
+       if (our_id) {
+               bl_do_set_our_id(TLS, our_id);
+       }
+       close(auth_file_fd);
+}
+
+void tg_new_msg(struct tgl_state *TLS, struct tgl_message *M)
+{
+
+}
+
+void tg_marked_read(struct tgl_state *TLS, int num, struct tgl_message *list[])
+{
+
+       for (int i = 0; i < num; i++) {
+               //struct tgl_message
+               struct tgl_message* message = list[i];
+
+               int identifier = -1;
+
+
+               tgl_peer_t* UC;
+               UC = tgl_peer_get(TLS, message->to_id);
+               struct tgl_user* buddy;
+               buddy = &(UC->user);
+               char* phone = NULL;
+               if (buddy) {
+                       phone = buddy->phone;
+               }
+               char* tb_name = get_table_name_from_number(message->to_id.id);
+               update_msg_into_db(message, tb_name, identifier);
+               if (message->media.type == tgl_message_media_photo) {
+                       update_sent_media_info_in_db(message, (long long)message->media.photo.id);
+               }
+               send_message_read_by_buddy_response(message->to_id.id, message->id, tb_name, phone, tgl_get_peer_type(message->to_id));
+               free(tb_name);
+
+
+
+       }
+
+}
+
+void tg_logprintf(const char *format, ...)  __attribute__((format(printf, 1, 2)))
+{
+
+}
+
+void tg_get_string(struct tgl_state *TLS, const char *prompt, int flags, void(*callback)(struct tgl_state *TLS, char *string, void *arg), void *arg)
+{
+       tg_data->get_string = callback;
+       tg_data->callback_arg = arg;
+       if (strcmp (prompt, "phone number:") == 0) {
+               tg_data->is_first_time_registration = EINA_FALSE;
+               tg_data->tg_state = TG_ENGINE_STATE_REGISTRATION;
+               if (tg_data && tg_data->phone_number) {
+                       tg_data->get_string(TLS, tg_data->phone_number, tg_data->callback_arg);
+               }
+       } else if (strcmp (prompt, "code('call' for phone call):") == 0) {
+
+               tg_data->tg_state = TG_ENGINE_STATE_CODE_REQUEST;
+               send_registration_response(EINA_TRUE);
+
+       } else if (strcmp (prompt, "register [Y/n]:") == 0) {
+
+               tg_data->tg_state = TG_ENGINE_STATE_PROFILE_REGISTRATION;
+               tg_data->get_string(TLS, "Y", tg_data->callback_arg);
+
+       } else if (strcmp (prompt, "First name:") == 0) {
+               // request for first name
+
+               tg_data->tg_state = TG_ENGINE_STATE_PROFILE_FIRST_NAME_REGISTRATION;
+               tg_data->is_first_time_registration = EINA_TRUE;
+
+               if (tg_data->first_name) {
+                       tg_data->get_string(TLS, tg_data->first_name, tg_data->callback_arg);
+               } else {
+                       send_name_registration_response();
+               }
+
+       } else if (strcmp (prompt, "Last name:") == 0) {
+               // request for last name
+               tg_data->tg_state = TG_ENGINE_STATE_PROFILE_LAST_NAME_REGISTRATION;
+
+               if (tg_data->last_name) {
+                       tg_data->get_string(TLS, tg_data->last_name, tg_data->callback_arg);
+               }
+
+       } else {
+
+               // to be checked
+
+       }
+}
+
+void tg_logged_in(struct tgl_state *TLS)
+{
+       write_auth_file();
+       if (tg_data->is_first_time_registration) {
+               // send contact list to add friends.
+               send_add_contacts_request();
+       } else {
+               int offline_mode = 0;
+               tgl_peer_id_t t_id;
+               t_id.id = TLS->our_id;
+               t_id.type = TGL_PEER_USER;
+               tgl_do_get_user_info(TLS, t_id, offline_mode, &on_user_info_loaded, NULL);
+       }
+}
+
+void tg_started(struct tgl_state *TLS)
+{
+       tg_data->is_login_activated = EINA_TRUE;
+}
+
+void tg_type_notification(struct tgl_state *TLS, struct tgl_user* buddy, enum tgl_typing_status status)
+{
+       char* name_of_buddy = NULL;
+
+       if (buddy->first_name && buddy->last_name) {
+               name_of_buddy = (char*)malloc(strlen(buddy->first_name) + strlen(buddy->last_name) + 1);
+               strcpy(name_of_buddy, buddy->first_name);
+               strcat(name_of_buddy, buddy->last_name);
+       } else if(buddy->first_name) {
+               name_of_buddy = (char*)malloc(strlen(buddy->first_name) + 1);
+               strcpy(name_of_buddy, buddy->first_name);
+       } else {
+               name_of_buddy = (char*)malloc(strlen(" ") + 1);
+               strcpy(name_of_buddy, " ");
+       }
+
+       send_buddy_type_notification_response(buddy->id.id, name_of_buddy, status);
+
+       if (name_of_buddy) {
+               free(name_of_buddy);
+               name_of_buddy = NULL;
+       }
+}
+
+void tg_type_in_chat_notification(struct tgl_state *TLS, struct tgl_user *U, struct tgl_chat *C, enum tgl_typing_status status)
+{
+
+}
+
+void tg_type_in_secret_chat_notification(struct tgl_state *TLS, struct tgl_secret_chat *E)
+{
+
+}
+
+void tg_status_notification(struct tgl_state *TLS, struct tgl_user *U)
+{
+
+}
+
+void tg_user_registered(struct tgl_state *TLS, struct tgl_user *U)
+{
+
+}
+
+void tg_user_activated(struct tgl_state *TLS, struct tgl_user *U)
+{
+
+}
+
+void tg_new_authorization(struct tgl_state *TLS, const char *device, const char *location)
+{
+
+}
+
+void tg_chat_update(struct tgl_state *TLS, struct tgl_chat* chat_info, unsigned flags)
+{
+#if 0
+       // check chat_id is already inserted or not
+       Eina_Bool is_already_exists = is_chat_id_already_exists(chat_info);
+
+       if (is_already_exists) {
+               // new updatation
+               update_chat_info_to_db(chat_info, NULL);
+
+               if (flags == TGL_UPDATE_MEMBERS) {
+                       // update to app that group is created.
+
+               }
+       } else {
+               // new insertion
+               // create chat message table and insert a starting  message.
+               if (flags == TGL_GROUP_CHAT_CREATED) {
+                       tgl_do_get_chat_info(TLS, chat_info->id, 0, &on_chat_info_received, (void*)flags);
+               }
+       }
+#else
+       if (tg_data->is_group_creation_requested) {
+               if (flags == TGL_GROUP_CHAT_CREATED) {
+                       tgl_do_get_chat_info(TLS, chat_info->id, 0, &on_chat_info_received, (void*)flags);
+               }
+       }
+#endif
+}
+
+void tg_user_update(struct tgl_state *TLS, struct tgl_user *buddy, unsigned flags)
+{
+       char* update_msg = NULL;
+
+       char* name_of_buddy = NULL;
+
+       if (buddy->first_name && buddy->last_name) {
+               name_of_buddy = (char*)malloc(strlen(buddy->first_name) + strlen(buddy->last_name) + 1);
+               strcpy(name_of_buddy, buddy->first_name);
+               strcat(name_of_buddy, buddy->last_name);
+       } else if(buddy->first_name) {
+               name_of_buddy = (char*)malloc(strlen(buddy->first_name) + 1);
+               strcpy(name_of_buddy, buddy->first_name);
+       } else {
+               name_of_buddy = (char*)malloc(strlen(" ") + 1);
+               strcpy(name_of_buddy, " ");
+       }
+
+       if (!(flags & TGL_UPDATE_CREATED)) {
+               if (!(flags & TGL_UPDATE_DELETED)) {
+
+                       insert_buddy_into_db(BUDDY_INFO_TABLE_NAME, buddy);
+
+                       //mprintf (ev, " updated");
+                       if (flags & TGL_UPDATE_PHONE) {
+                               update_msg = (char*)malloc(strlen(name_of_buddy) + strlen(" phone number updated.") + 1);
+                               strcpy(update_msg, name_of_buddy);
+                               strcat(update_msg, " phone number updated.");
+                       }
+                       if (flags & TGL_UPDATE_CONTACT) {
+                               update_msg = (char*)malloc(strlen(name_of_buddy) + strlen(" contact updated.") + 1);
+                               strcpy(update_msg, name_of_buddy);
+                               strcat(update_msg, " contact updated.");
+                       }
+                       if (flags & TGL_UPDATE_PHOTO) {
+                               update_msg = (char*)malloc(strlen(name_of_buddy) + strlen(" photo updated.") + 1);
+                               strcpy(update_msg, name_of_buddy);
+                               strcat(update_msg, " photo updated.");
+
+                               tgl_do_get_user_info(TLS, buddy->id, 0, &on_buddy_info_loaded, NULL);
+                       }
+                       if (flags & TGL_UPDATE_BLOCKED) {
+                               update_msg = (char*)malloc(strlen(name_of_buddy) + strlen(" contact blocked.") + 1);
+                               strcpy(update_msg, name_of_buddy);
+                               strcat(update_msg, " contact blocked.");
+                       }
+                       if (flags & TGL_UPDATE_REAL_NAME) {
+                               update_msg = (char*)malloc(strlen(name_of_buddy) + strlen(" name updated.") + 1);
+                               strcpy(update_msg, name_of_buddy);
+                               strcat(update_msg, " name updated.");
+                       }
+                       if (flags & TGL_UPDATE_NAME) {
+                               update_msg = (char*)malloc(strlen(name_of_buddy) + strlen(" contact name updated.") + 1);
+                               strcpy(update_msg, name_of_buddy);
+                               strcat(update_msg, " contact name updated.");
+                       }
+                       if (flags & TGL_UPDATE_REQUESTED) {
+                               update_msg = (char*)malloc(strlen(name_of_buddy) + strlen(" status updated.") + 1);
+                               strcpy(update_msg, name_of_buddy);
+                               strcat(update_msg, " status updated.");
+                       }
+                       if (flags & TGL_UPDATE_WORKING) {
+                               update_msg = (char*)malloc(strlen(name_of_buddy) + strlen(" status updated.") + 1);
+                               strcpy(update_msg, name_of_buddy);
+                               strcat(update_msg, " status updated.");
+                       }
+                       if (flags & TGL_UPDATE_FLAGS) {
+                               update_msg = (char*)malloc(strlen(name_of_buddy) + strlen(" flags updated.") + 1);
+                               strcpy(update_msg, name_of_buddy);
+                               strcat(update_msg, " flags updated.");
+                       }
+                       if (flags & TGL_UPDATE_TITLE) {
+                               update_msg = (char*)malloc(strlen(name_of_buddy) + strlen(" title updated.") + 1);
+                               strcpy(update_msg, name_of_buddy);
+                               strcat(update_msg, " title updated.");
+                       }
+                       if (flags & TGL_UPDATE_ADMIN) {
+                               update_msg = (char*)malloc(strlen(name_of_buddy) + strlen(" admin updated.") + 1);
+                               strcpy(update_msg, name_of_buddy);
+                               strcat(update_msg, " admin updated.");
+                       }
+                       if (flags & TGL_UPDATE_MEMBERS) {
+                               update_msg = (char*)malloc(strlen(name_of_buddy) + strlen(" members updated.") + 1);
+                               strcpy(update_msg, name_of_buddy);
+                               strcat(update_msg, " members updated.");
+                       }
+                       if (flags & TGL_UPDATE_ACCESS_HASH) {
+                               update_msg = (char*)malloc(strlen(name_of_buddy) + strlen(" access hash updated.") + 1);
+                               strcpy(update_msg, name_of_buddy);
+                               strcat(update_msg, " access hash updated.");
+                       }
+                       if (flags & TGL_UPDATE_USERNAME) {
+                               update_msg = (char*)malloc(strlen(name_of_buddy) + strlen(" username updated.") + 1);
+                               strcpy(update_msg, name_of_buddy);
+                               strcat(update_msg, " username updated.");
+                       }
+               } else {
+                       update_msg = (char*)malloc(strlen(name_of_buddy) + strlen(" contact deleted.") + 1);
+                       strcpy(update_msg, name_of_buddy);
+                       strcat(update_msg, " contact deleted.");
+               }
+       }
+
+       if (update_msg) {
+               // send message to application.
+               send_contact_updated_response(buddy->id.id, update_msg);
+
+               free(update_msg);
+               update_msg = NULL;
+       }
+
+       if (name_of_buddy) {
+               free(name_of_buddy);
+               name_of_buddy = NULL;
+       }
+}
+
+void tg_secret_chat_update(struct tgl_state *TLS, struct tgl_secret_chat *C, unsigned flags)
+{
+
+}
+
+void tg_msg_receive(struct tgl_state *TLS, struct tgl_message *M)
+{
+       if (M && TLS->started) {
+
+               if (M->flags & (FLAG_MESSAGE_EMPTY | FLAG_DELETED)) {
+                       return;
+               }
+               if (!(M->flags & FLAG_CREATED)) {
+                       return;
+               }
+               if (M->service) {
+                       // this is service message. to be handled in telegram.
+                       return;
+               }
+
+               if (!tgl_get_peer_type(M->to_id)) {
+                       // bad message
+                       return;
+               }
+
+               if (tgl_get_peer_type(M->to_id) == TGL_PEER_USER) {
+                       if (M->out) {
+
+                               if (M->unread) {
+
+                               } else {
+
+                               }
+
+                       } else {
+                               if (M->media.type != tgl_message_media_none) {
+                                       M->message = NULL;
+                                       M->message_len = 0;
+                               }
+
+                               insert_buddy_msg_to_db(M);
+                               if(M->media.type != tgl_message_media_none) {
+                                       insert_media_info_to_db(M, "");
+                               }
+                               // inform to application
+                               send_message_received_response(M->from_id.id, M->to_id.id, M->id, tgl_get_peer_type(M->to_id));
+                       }
+
+               } else if (tgl_get_peer_type(M->to_id) == TGL_PEER_ENCR_CHAT) {
+
+               } else {
+
+                       if ((tgl_get_peer_type (M->from_id) == TGL_PEER_USER) && (tgl_get_peer_id (M->from_id) == TLS->our_id)) {
+
+                       } else {
+                               if (M->media.type != tgl_message_media_none) {
+                                       M->message = NULL;
+                                       M->message_len = 0;
+                               }
+
+                               insert_buddy_msg_to_db(M);
+                               if(M->media.type != tgl_message_media_none) {
+                                       insert_media_info_to_db(M, "");
+                               }
+                               // inform to application
+                               send_message_received_response(M->from_id.id, M->to_id.id, M->id, tgl_get_peer_type(M->to_id));
+                       }
+               }
+       }
+}
+
+void tg_our_id(struct tgl_state *TLS, int id)
+{
+
+}
+
+void tg_notification(struct tgl_state *TLS, char *type, char *message)
+{
+
+}
+
+void tg_user_status_update(struct tgl_state *TLS, struct tgl_user *U)
+{
+
+       if (tgl_get_peer_type (U->id) != TGL_PEER_USER) {
+               return;
+       }
+
+       if (!U) {
+               // unknown user
+       } else {
+               if ((U->flags & FLAG_DELETED)) {
+                       // deleted user
+               } else if (!(U->flags & FLAG_CREATED)) {
+                       // newly created user
+               } else {
+                       // existing user
+
+               }
+
+               if (U->flags & FLAG_USER_SELF) {
+                       insert_buddy_into_db(USER_INFO_TABLE_NAME, U);
+               } else if (U->flags & FLAG_USER_CONTACT) {
+                       insert_buddy_into_db(BUDDY_INFO_TABLE_NAME, U);
+#if 0
+                       struct tgl_user_status *S = &(U->status);
+
+                       if (S->online > 0) {
+                               //online;
+                       } else {
+                               if (S->online == 0) {
+                                       //"offline
+                               } else if (S->online == -1) {
+                                       //offline was online ");
+                               } else if (S->online == -2) {
+                                       // offline (was online recently)
+                               } else if (S->online == -3) {
+                                       //offline (was online last week)
+                               } else if (S->online == -4) {
+                                       //offline (was online last month)
+                               }
+                       }
+#endif
+                       // update status to application.
+                       send_buddy_status_updated_response(U->id.id);
+
+               } else {
+
+               }
+       }
+
+}
+
+char* tg_create_print_name(struct tgl_state *TLS, tgl_peer_id_t id, const char *a1, const char *a2, const char *a3, const char *a4)
+{
+       return NULL;
+}
+
+struct tgl_update_callback upd_cb = {
+               .new_msg = tg_new_msg,
+               .marked_read = tg_marked_read,
+               .logprintf = tg_logprintf,
+               .get_string = tg_get_string,
+               .logged_in = tg_logged_in,
+               .started = tg_started,
+               .type_notification = tg_type_notification,
+               .type_in_chat_notification = tg_type_in_chat_notification,
+               .type_in_secret_chat_notification = tg_type_in_secret_chat_notification,
+               .status_notification = tg_status_notification,
+               .user_registered = tg_user_registered,
+               .user_activated = tg_user_activated,
+               .new_authorization = tg_new_authorization,
+               .user_update = tg_user_update,
+               .chat_update = tg_chat_update,
+               .secret_chat_update = tg_secret_chat_update,
+               .msg_receive = tg_msg_receive,
+               .our_id = tg_our_id,
+               .user_status_update = tg_user_status_update
+};
+
+void on_chat_pic_loaded(struct tgl_state *TLS, void *callback_extra, int success, char *filename)
+{
+       struct tgl_chat *chat_info = callback_extra;
+
+       if(filename) {
+               update_chat_info_to_db(chat_info, filename);
+               update_buddy_pic_db(filename, PEER_INFO_TABLE_NAME, chat_info->id.id);
+               send_buddy_profile_pic_updated_response(chat_info->id.id, filename);
+       }
+}
+
+void on_buddy_pic_loaded(struct tgl_state *TLS, void *callback_extra, int success, char *filename)
+{
+       struct tgl_user *buddy = callback_extra;
+
+       if(buddy && buddy->id.id == tg_data->id.id) {
+               if(filename) {
+                       update_buddy_pic_db(filename, USER_INFO_TABLE_NAME, buddy->id.id);
+                       send_buddy_profile_pic_updated_response(buddy->id.id, filename);
+               }
+               return;
+       }
+
+       if(filename) {
+               update_buddy_pic_db(filename, BUDDY_INFO_TABLE_NAME, buddy->id.id);
+               update_buddy_pic_db(filename, PEER_INFO_TABLE_NAME, buddy->id.id);
+               send_buddy_profile_pic_updated_response(buddy->id.id, filename);
+       }
+}
+
+void on_new_group_icon_loaded(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M)
+{
+       struct tgl_chat *chat_info = callback_extra;
+
+       if(tg_data->new_group_icon) {
+
+               char* msg_table = get_table_name_from_number(chat_info->id.id);
+               create_buddy_msg_table(msg_table);
+
+               char* msg_data = "group icon changed.";
+               struct tgl_message msg;
+               msg.from_id.id = 0;
+               msg.from_id.type = 0;
+               msg.date = 0;
+               msg.flags = 0;
+               msg.fwd_date = 0;
+               msg.fwd_from_id.id = 0;
+               msg.fwd_from_id.type = 0;
+               msg.id = 0;
+               msg.message = msg_data;
+               msg.message_len = strlen (msg_data);
+               msg.out = 0;
+               msg.service = 0;
+               msg.to_id.id = 0;
+               msg.to_id.type = tg_data->id.type;
+               msg.unread = 0;
+               msg.media.type = -1;
+               int t = time(NULL);
+               insert_msg_into_db(&msg, msg_table, t);
+               free(msg_table);
+
+               update_chat_info_to_db(chat_info, tg_data->new_group_icon);
+               update_buddy_pic_db(tg_data->new_group_icon, PEER_INFO_TABLE_NAME, chat_info->id.id);
+               send_buddy_profile_pic_updated_response(chat_info->id.id, tg_data->new_group_icon);
+
+               free(tg_data->new_group_icon);
+               tg_data->new_group_icon = NULL;
+       }
+}
+
+void on_chat_info_received(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_chat *chat_info)
+{
+       if (!chat_info) {
+               return;
+       }
+
+       char* msg_table = get_table_name_from_number(chat_info->id.id);
+       create_buddy_msg_table(msg_table);
+
+
+       insert_chat_info_to_db(chat_info, NULL);
+       int flags = (int)callback_extra;
+       struct tgl_photo* pic = &(chat_info->photo);
+       if(pic) {
+               tgl_do_load_photo(TLS, pic ,&on_chat_pic_loaded,chat_info);
+       }
+
+       if (tg_data->is_group_creation_requested) {
+               tgl_peer_t* UC;
+               UC = tgl_peer_get(TLS, chat_info->id);
+               // insert into peer table
+               insert_peer_into_database(UC, 0, 0);
+               tg_data->is_group_creation_requested = EINA_FALSE;
+
+               /*************** insert service message ********************/
+
+               char* msg_data = "new group created.";
+               struct tgl_message msg;
+               msg.from_id.id = 0;
+               msg.from_id.type = 0;
+               msg.date = 0;
+               msg.flags = 0;
+               msg.fwd_date = 0;
+               msg.fwd_from_id.id = 0;
+               msg.fwd_from_id.type = 0;
+               msg.id = 0;
+               msg.message = msg_data;
+               msg.message_len = strlen (msg_data);
+               msg.out = 0;
+               msg.service = 0;
+               msg.to_id.id = 0;
+               msg.to_id.type = tg_data->id.type;
+               msg.unread = 0;
+               msg.media.type = -1;
+               int t = time(NULL);
+               insert_msg_into_db(&msg, msg_table, t);
+
+               /***********************************************************/
+               send_new_group_added_response(chat_info->id.id);
+
+               if (tg_data->new_group_icon) {
+                       tgl_do_set_chat_photo(TLS, chat_info->id, tg_data->new_group_icon, on_new_group_icon_loaded, chat_info);
+               }
+       }
+       free(msg_table);
+}
+
+void on_buddy_info_loaded(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_user *U)
+{
+       if(!U) {
+               return;
+       }
+       //insert_buddy_into_db(BUDDY_INFO_TABLE_NAME, U);
+       struct tgl_photo* pic = &(U->photo);
+       if(pic) {
+               tgl_do_load_photo(TLS, pic ,&on_buddy_pic_loaded,U);
+       }
+}
+
+void on_contacts_received(struct tgl_state *TLS, void *callback_extra, int success, int size, struct tgl_user *contacts[])
+{
+       for (int i = size - 1; i >= 0; i--) {
+               struct tgl_user *buddy = contacts[i];
+               char* msg_table = get_table_name_from_number(buddy->id.id);
+               create_buddy_msg_table(msg_table);
+               free(msg_table);
+
+               tgl_do_get_user_info(TLS, buddy->id, 0, &on_buddy_info_loaded, NULL);
+               insert_buddy_into_db(BUDDY_INFO_TABLE_NAME, buddy);
+       }
+
+       // inform client that contact loading is done.
+       send_contacts_load_done_response(EINA_TRUE);
+}
+
+void on_contacts_and_chats_loaded(struct tgl_state *TLS, void *callback_extra, int success, int size, tgl_peer_id_t peers[], int last_msg_id[], int unread_count[])
+{
+       for (int i = size - 1; i >= 0; i--) {
+               tgl_peer_t* UC;
+               UC = tgl_peer_get(TLS, peers[i]);
+               // insert into peer table
+               insert_peer_into_database(UC, last_msg_id[i], unread_count[i]);
+               struct tgl_user* buddy;
+               struct tgl_chat* chat_info;
+               switch (tgl_get_peer_type(peers[i])) {
+               case TGL_PEER_USER:
+                       buddy = &(UC->user);
+                       if (buddy) {
+                               char* msg_table = get_table_name_from_number(buddy->id.id);
+                               create_buddy_msg_table(msg_table);
+                               free(msg_table);
+                               insert_buddy_into_db(BUDDY_INFO_TABLE_NAME, buddy);
+                               tgl_do_get_user_info(TLS, buddy->id, 0, &on_buddy_info_loaded, NULL);
+                       }
+                       break;
+               case TGL_PEER_CHAT:
+                       chat_info = &(UC->chat);
+                       tgl_do_get_chat_info(TLS, chat_info->id, 0, &on_chat_info_received, NULL);
+                       break;
+               case TGL_PEER_ENCR_CHAT:
+                       break;
+               }
+       }
+       send_contacts_and_chats_load_done_response(EINA_TRUE);
+}
+
+void on_user_info_loaded(struct tgl_state *TLSR, void *extra, int success, struct tgl_user *buddy)
+{
+       tg_data->id.id = buddy->id.id;
+       tg_data->id.type = buddy->id.type;
+
+       struct tgl_photo* pic = &(buddy->photo);
+       if(pic) {
+               tgl_do_load_photo(TLS, pic ,&on_buddy_pic_loaded, buddy);
+       }
+
+       insert_buddy_into_db(USER_INFO_TABLE_NAME, buddy);
+
+       //tgl_do_update_contact_list(TLS, on_contacts_received, NULL);
+
+       tgl_do_get_dialog_list(TLS, on_contacts_and_chats_loaded, NULL);
+
+}
+
+void on_message_sent_to_buddy(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *message)
+{
+       int identifier = (int)callback_extra;
+
+#if 0
+       Eina_List* buddy_details_array = get_buddy_info(message->to_id.id);
+       if (buddy_details_array && eina_list_count(buddy_details_array) > 0) {
+               Eina_List* buddy_details = eina_list_nth(buddy_details_array, 0);
+               if (buddy_details && eina_list_count(buddy_details) > 0) {
+                       char* phone = eina_list_nth(buddy_details, 7);
+                       if (phone) {
+                               char* tb_name = get_table_name_from_number(phone);
+                               update_msg_into_db(message,tb_name, identifier);
+                               if (message->media.type == tgl_message_media_photo) {
+                                       update_sent_media_info_in_db(message, (long long)identifier);
+                               }
+                               // update message sent status to application.
+                               // send message table name, message id, buddy id and phone number
+                               send_message_sent_to_buddy_response(message->to_id.id, message->id, tb_name, phone);
+                               free(tb_name);
+                               free(phone);
+                       }
+               }
+       }
+#else
+       if (success) {
+               tgl_peer_t* UC;
+               UC = tgl_peer_get(TLS, message->to_id);
+               struct tgl_user* buddy;
+               buddy = &(UC->user);
+               char* phone = NULL;
+               if (buddy) {
+                       phone = buddy->phone;
+               }
+               char* tb_name = get_table_name_from_number(message->to_id.id);
+               update_msg_into_db(message, tb_name, identifier);
+               if (message->media.type == tgl_message_media_photo) {
+                       update_sent_media_info_in_db(message, (long long)identifier);
+               }
+               send_message_sent_to_buddy_response(message->to_id.id, message->id, tb_name, phone, tgl_get_peer_type(message->to_id));
+               free(tb_name);
+       } else {
+               // message sent failed.
+       }
+#endif
+}
+
+void on_image_download_completed(struct tgl_state *TLS, void *callback_extra, int success, char *filename)
+{
+       struct tgl_photo* photo_prop = (struct tgl_photo*)callback_extra;
+
+       if(photo_prop && filename) {
+               long long media_id = photo_prop->id;
+               int buddy_id = photo_prop->user_id;
+               update_receive_media_info_in_db(media_id, filename);
+               //send response to application
+               send_media_download_completed_response(buddy_id, media_id, filename);
+               free(photo_prop);
+       }
+}
+
+void on_contact_added(struct tgl_state *TLS,void *callback_extra, int success, int size, struct tgl_user *users[])
+{
+       tg_engine_data_s* data = callback_extra;
+
+       data->current_index++;
+
+       if (data->current_index < eina_list_count(data->contact_list_to_add)) {
+               contact_data_s* contact = eina_list_nth(data->contact_list_to_add, data->current_index);
+
+               if (contact) {
+                       char* first_name = contact->first_name;
+                       char* last_name = contact->last_name;
+                       char* phone_number = contact->phone_number;
+                       tgl_do_add_contact(TLS, phone_number, strlen(phone_number), first_name, strlen(first_name), last_name, strlen(last_name), 0, on_contact_added, data);
+               }
+
+       } else {
+               int offline_mode = 0;
+               tgl_peer_id_t t_id;
+               t_id.id = TLS->our_id;
+               t_id.type = TGL_PEER_USER;
+               tgl_do_get_user_info(TLS, t_id, offline_mode, &on_user_info_loaded, NULL);
+       }
+}
+
+void on_new_group_created(struct tgl_state *TLS, void *callback_extra, int success, struct tgl_message *M)
+{
+         if (!success) {
+                 // send fail notification
+         } else {
+                 // send success notofication
+         }
+}
+
+void create_new_group(Eina_List* buddy_ids, const char* group_name, const char* group_icon)
+{
+       if (!buddy_ids || ! group_name) {
+               return;
+       }
+       int users_num = eina_list_count(buddy_ids);
+
+         static tgl_peer_id_t ids[1000];
+         int i;
+         for (i = 0; i < users_num; i++) {
+                 char* buddy_id_str = (char*)eina_list_nth(buddy_ids, i);
+                 int buddy_id = atoi(buddy_id_str);
+             ids[i].id = buddy_id;
+             ids[i].type = TGL_PEER_USER;
+         }
+       tgl_do_create_group_chat_ex(TLS, users_num, ids, group_name, on_new_group_created, group_icon);
+       tg_data->is_group_creation_requested = EINA_TRUE;
+       if (tg_data->new_group_icon) {
+               free(tg_data->new_group_icon);
+               tg_data->new_group_icon = NULL;
+       }
+       if (group_icon && strlen(group_icon) > 0) {
+               tg_data->new_group_icon = strdup(group_icon);
+       }
+
+}
+
+void add_contacts_to_user(int size, Eina_List* contact_list)
+{
+       tg_data->contact_list_to_add = contact_list;
+       if (eina_list_count(contact_list) > 0) {
+               contact_data_s* contact = eina_list_nth(contact_list, 0);
+               if (contact) {
+                       char* first_name = contact->first_name;
+                       char* last_name = contact->last_name;
+                       char* phone_number = contact->phone_number;
+                       tg_data->current_index = 0;
+                       tgl_do_add_contact(TLS, phone_number, strlen(phone_number) ,first_name, strlen(first_name), last_name, strlen(last_name), 0, on_contact_added, tg_data);
+               }
+       }
+}
+
+void media_download_request(int buddy_id, long long media_id)
+{
+#if 1
+       // get media details by mediaid
+       Eina_List* img_details = get_image_details_from_db(media_id);
+
+       if(!img_details) {
+               return;
+       } else {
+
+               char* media_id_str = 0;
+               int media_type = 0;
+               char* access_hash_str = 0;
+               int user_id = 0;
+               int date = 0;
+               char* caption = 0;
+               char* longitude = 0;
+               char* latitude = 0;
+               int sizes = 0;
+               char* phone_no = 0;
+               char* first_name = 0;
+               char* last_name = 0;
+               char* file_path = 0;
+
+               char* photo_type1 = 0;
+               int photo_loc_dc1 = 0;
+               char* photo_loc_vol_str1 = 0;
+               int photo_loc_id1 = 0;
+               char* photo_loc_sec_str1 = 0;
+               int photo_width1 = 0;
+               int photo_height1 = 0;
+               int photo_size1 = 0;
+               char* photo_data1 = 0;
+
+               char* photo_type2 = 0;
+               int photo_loc_dc2 = 0;
+               char* photo_loc_vol_str2 = 0;
+               int photo_loc_id2 = 0;
+               char* photo_loc_sec_str2 = 0;
+               int photo_width2 = 0;
+               int photo_height2 = 0;
+               int photo_size2 = 0;
+               char* photo_data2 = 0;
+
+               char* photo_type3 = 0;
+               int photo_loc_dc3 = 0;
+               char* photo_loc_vol_str3 = 0;
+               int photo_loc_id3 = 0;
+               char* photo_loc_sec_str3 = 0;
+               int photo_width3 = 0;
+               int photo_height3 = 0;
+               int photo_size3 = 0;
+               char* photo_data3 = 0;
+
+               char* photo_type4 = 0;
+               int photo_loc_dc4 = 0;
+               char* photo_loc_vol_str4 = 0;
+               int photo_loc_id4 = 0;
+               char* photo_loc_sec_str4 = 0;
+               int photo_width4 = 0;
+               int photo_height4 = 0;
+               int photo_size4 = 0;
+               char* photo_data4 = 0;
+
+
+               int row_count = eina_list_count(img_details);
+
+               for (int i = 0 ; i < row_count ; i++) {
+                       Eina_List* row_vals = eina_list_nth(img_details, i);
+
+                       char* temp_media_id = (char*)eina_list_nth(row_vals, 0);
+
+                       if(temp_media_id) {
+                               media_id_str = strdup(temp_media_id);
+                               free(temp_media_id);
+                       }
+
+                       int* temp_media_type = (int*)eina_list_nth(row_vals, 1);
+
+                       if(temp_media_type) {
+                               media_type = *temp_media_type;
+                               free(temp_media_type);
+                       }
+
+                       char* temp_access_hash = (char*)eina_list_nth(row_vals, 2);
+
+                       if(temp_access_hash) {
+                               access_hash_str = strdup(temp_access_hash);
+                               free(temp_access_hash);
+                       }
+
+                       int* temp_user_id = (int*)eina_list_nth(row_vals, 3);
+
+                       if(temp_user_id) {
+                               user_id = *temp_user_id;
+                               free(temp_user_id);
+                       }
+
+                       int* temp_date = (int*)eina_list_nth(row_vals, 4);
+
+                       if(temp_date) {
+                               date = *temp_date;
+                               free(temp_date);
+                       }
+
+                       char* temp_caption = (char*)eina_list_nth(row_vals, 5);
+
+                       if(temp_caption) {
+                               caption = strdup(temp_caption);
+                               free(temp_caption);
+                       }
+
+                       char* temp_longitude = (char*)eina_list_nth(row_vals, 6);
+
+                       if(temp_longitude) {
+                               longitude = strdup(temp_longitude);
+                               free(temp_longitude);
+                       }
+
+                       char* temp_latitude = (char*)eina_list_nth(row_vals, 7);
+
+                       if(temp_latitude) {
+                               latitude = strdup(temp_latitude);
+                               free(temp_latitude);
+                       }
+
+                       int* temp_sizes = (int*)eina_list_nth(row_vals, 8);
+
+                       if(temp_sizes) {
+                               sizes = *temp_sizes;
+                               free(temp_sizes);
+                       }
+
+                       /***************************************************************/
+
+                       char* temp_photo_type1 = (char*)eina_list_nth(row_vals, 9);
+                       if (temp_photo_type1 && strlen(temp_photo_type1) > 0) {
+                               photo_type1 =strdup(temp_photo_type1);
+                               free(temp_photo_type1);
+                       }
+
+
+                       int* temp_photo_loc_dc1 = (int*)eina_list_nth(row_vals, 10);
+                       if (temp_photo_loc_dc1) {
+                               photo_loc_dc1 = *temp_photo_loc_dc1;
+                               free(temp_photo_loc_dc1);
+                       }
+
+
+                       char* temp_photo_loc_vol1 = (char*)eina_list_nth(row_vals, 11);
+                       if(temp_photo_loc_vol1 && strlen(temp_photo_loc_vol1) > 0) {
+                               photo_loc_vol_str1 = strdup(temp_photo_loc_vol1);
+                               free(temp_photo_loc_vol1);
+                       }
+
+
+                       int* temp_photo_loc_id1 = (int*)eina_list_nth(row_vals, 12);
+                       if (temp_photo_loc_id1) {
+                               photo_loc_id1 = *temp_photo_loc_id1;
+                               free(temp_photo_loc_id1);
+                       }
+
+                       char* temp_photo_loc_sec1 = (char*)eina_list_nth(row_vals, 13);
+                       if(temp_photo_loc_sec1 && strlen(temp_photo_loc_sec1) > 0) {
+                               photo_loc_sec_str1 = strdup(temp_photo_loc_sec1);
+                               free(temp_photo_loc_sec1);
+                       }
+
+
+                       int* temp_photo_width1 = (int*)eina_list_nth(row_vals, 14);
+                       if(temp_photo_width1) {
+                               photo_width1 = *temp_photo_width1;
+                               free(temp_photo_width1);
+                       }
+
+
+                       int* temp_photo_height1 = (int*)eina_list_nth(row_vals, 15);
+                       if(temp_photo_height1) {
+                               photo_height1 = *temp_photo_height1;
+                               free(temp_photo_height1);
+                       }
+
+                       int* temp_photo_size1 = (int*)eina_list_nth(row_vals, 16);
+                       if(temp_photo_size1) {
+                               photo_size1 = *temp_photo_size1;
+                               free(temp_photo_size1);
+                       }
+
+
+                       char* temp_photo_data1 = (char*)eina_list_nth(row_vals, 17);
+                       if(temp_photo_data1 && strlen(temp_photo_data1) > 0) {
+                               photo_data1 = strdup(temp_photo_data1);
+                               free(temp_photo_data1);
+                       }
+
+
+                       char* temp_photo_type2 = (char*)eina_list_nth(row_vals, 18);
+                       if (temp_photo_type2 && strlen(temp_photo_type2) > 0) {
+                               photo_type2 =strdup(temp_photo_type2);
+                               free(temp_photo_type2);
+                       }
+
+
+                       int* temp_photo_loc_dc2 = (int*)eina_list_nth(row_vals, 19);
+                       if (temp_photo_loc_dc2) {
+                               photo_loc_dc2 = *temp_photo_loc_dc2;
+                               free(temp_photo_loc_dc2);
+                       }
+
+
+                       char* temp_photo_loc_vol2 = (char*)eina_list_nth(row_vals, 20);
+                       if(temp_photo_loc_vol2 && strlen(temp_photo_loc_vol2) > 0) {
+                               photo_loc_vol_str2 = strdup(temp_photo_loc_vol2);
+                               free(temp_photo_loc_vol2);
+                       }
+
+
+                       int* temp_photo_loc_id2 = (int*)eina_list_nth(row_vals, 21);
+                       if (temp_photo_loc_id2) {
+                               photo_loc_id2 = *temp_photo_loc_id2;
+                               free(temp_photo_loc_id2);
+                       }
+
+                       char* temp_photo_loc_sec2 = (char*)eina_list_nth(row_vals, 22);
+                       if(temp_photo_loc_sec2 && strlen(temp_photo_loc_sec2) > 0) {
+                               photo_loc_sec_str2 = strdup(temp_photo_loc_sec2);
+                               free(temp_photo_loc_sec2);
+                       }
+
+
+                       int* temp_photo_width2 = (int*)eina_list_nth(row_vals, 23);
+                       if(temp_photo_width2) {
+                               photo_width2 = *temp_photo_width2;
+                               free(temp_photo_width2);
+                       }
+
+
+                       int* temp_photo_height2 = (int*)eina_list_nth(row_vals, 24);
+                       if(temp_photo_height2) {
+                               photo_height2 = *temp_photo_height2;
+                               free(temp_photo_height2);
+                       }
+
+                       int* temp_photo_size2 = (int*)eina_list_nth(row_vals, 25);
+                       if(temp_photo_size2) {
+                               photo_size2 = *temp_photo_size2;
+                               free(temp_photo_size2);
+                       }
+
+
+                       char* temp_photo_data2 = (char*)eina_list_nth(row_vals, 26);
+                       if(temp_photo_data2 && strlen(temp_photo_data2) > 0) {
+                               photo_data2 = strdup(temp_photo_data2);
+                               free(temp_photo_data2);
+                       }
+
+                       char* temp_photo_type3 = (char*)eina_list_nth(row_vals, 27);
+                       if (temp_photo_type3 && strlen(temp_photo_type3) > 0) {
+                               photo_type3 =strdup(temp_photo_type3);
+                               free(temp_photo_type3);
+                       }
+
+
+                       int* temp_photo_loc_dc3 = (int*)eina_list_nth(row_vals, 28);
+                       if (temp_photo_loc_dc3) {
+                               photo_loc_dc3 = *temp_photo_loc_dc3;
+                               free(temp_photo_loc_dc3);
+                       }
+
+
+                       char* temp_photo_loc_vol3 = (char*)eina_list_nth(row_vals, 29);
+                       if(temp_photo_loc_vol3 && strlen(temp_photo_loc_vol3) > 0) {
+                               photo_loc_vol_str3 = strdup(temp_photo_loc_vol3);
+                               free(temp_photo_loc_vol3);
+                       }
+
+
+                       int* temp_photo_loc_id3 = (int*)eina_list_nth(row_vals, 30);
+                       if (temp_photo_loc_id3) {
+                               photo_loc_id3 = *temp_photo_loc_id3;
+                               free(temp_photo_loc_id3);
+                       }
+
+                       char* temp_photo_loc_sec3 = (char*)eina_list_nth(row_vals, 31);
+                       if(temp_photo_loc_sec3 && strlen(temp_photo_loc_sec3) > 0) {
+                               photo_loc_sec_str3 = strdup(temp_photo_loc_sec3);
+                               free(temp_photo_loc_sec3);
+                       }
+
+
+                       int* temp_photo_width3 = (int*)eina_list_nth(row_vals, 32);
+                       if(temp_photo_width3) {
+                               photo_width3 = *temp_photo_width3;
+                               free(temp_photo_width3);
+                       }
+
+
+                       int* temp_photo_height3 = (int*)eina_list_nth(row_vals, 33);
+                       if(temp_photo_height3) {
+                               photo_height3 = *temp_photo_height3;
+                               free(temp_photo_height3);
+                       }
+
+                       int* temp_photo_size3 = (int*)eina_list_nth(row_vals, 34);
+                       if(temp_photo_size3) {
+                               photo_size3 = *temp_photo_size3;
+                               free(temp_photo_size3);
+                       }
+
+
+                       char* temp_photo_data3 = (char*)eina_list_nth(row_vals, 35);
+                       if(temp_photo_data3 && strlen(temp_photo_data3) > 0) {
+                               photo_data3 = strdup(temp_photo_data3);
+                               free(temp_photo_data3);
+                       }
+
+                       char* temp_photo_type4 = (char*)eina_list_nth(row_vals, 36);
+                       if (temp_photo_type4 && strlen(temp_photo_type4) > 0) {
+                               photo_type4 =strdup(temp_photo_type4);
+                               free(temp_photo_type4);
+                       }
+
+
+                       int* temp_photo_loc_dc4 = (int*)eina_list_nth(row_vals, 37);
+                       if (temp_photo_loc_dc4) {
+                               photo_loc_dc4 = *temp_photo_loc_dc4;
+                               free(temp_photo_loc_dc4);
+                       }
+
+
+                       char* temp_photo_loc_vol4 = (char*)eina_list_nth(row_vals, 38);
+                       if(temp_photo_loc_vol4 && strlen(temp_photo_loc_vol4) > 0) {
+                               photo_loc_vol_str4 = strdup(temp_photo_loc_vol4);
+                               free(temp_photo_loc_vol4);
+                       }
+
+
+                       int* temp_photo_loc_id4 = (int*)eina_list_nth(row_vals, 39);
+                       if (temp_photo_loc_id4) {
+                               photo_loc_id4 = *temp_photo_loc_id4;
+                               free(temp_photo_loc_id4);
+                       }
+
+                       char* temp_photo_loc_sec4 = (char*)eina_list_nth(row_vals, 40);
+                       if(temp_photo_loc_sec4 && strlen(temp_photo_loc_sec4) > 0) {
+                               photo_loc_sec_str4 = strdup(temp_photo_loc_sec4);
+                               free(temp_photo_loc_sec4);
+                       }
+
+
+                       int* temp_photo_width4 = (int*)eina_list_nth(row_vals, 41);
+                       if(temp_photo_width4) {
+                               photo_width4 = *temp_photo_width4;
+                               free(temp_photo_width4);
+                       }
+
+
+                       int* temp_photo_height4 = (int*)eina_list_nth(row_vals, 42);
+                       if(temp_photo_height4) {
+                               photo_height4 = *temp_photo_height4;
+                               free(temp_photo_height4);
+                       }
+
+                       int* temp_photo_size4 = (int*)eina_list_nth(row_vals, 43);
+                       if(temp_photo_size4) {
+                               photo_size4 = *temp_photo_size4;
+                               free(temp_photo_size4);
+                       }
+
+
+                       char* temp_photo_data4 = (char*)eina_list_nth(row_vals, 44);
+                       if(temp_photo_data4 && strlen(temp_photo_data4) > 0) {
+                               photo_data4 = strdup(temp_photo_data4);
+                               free(temp_photo_data4);
+                       }
+
+
+                       /**************************************************************/
+
+                       char* temp_phone_no = (char*)eina_list_nth(row_vals, 45);
+
+                       if(temp_phone_no && strlen(temp_phone_no) > 0) {
+                               phone_no = strdup(temp_phone_no);
+                               free(temp_phone_no);
+                       }
+
+                       char* temp_first_name = (char*)eina_list_nth(row_vals, 46);
+
+                       if(temp_first_name && strlen(temp_first_name) > 0) {
+                               first_name = strdup(temp_first_name);
+                               free(temp_first_name);
+                       }
+
+                       char* temp_last_name = (char*)eina_list_nth(row_vals, 47);
+
+                       if(temp_last_name && strlen(temp_last_name) > 0) {
+                               last_name = strdup(temp_last_name);
+                               free(temp_last_name);
+                       }
+
+                       char* temp_file_path = (char*)eina_list_nth(row_vals, 48);
+
+                       if(temp_file_path && strlen(temp_file_path) > 0) {
+                               file_path = strdup(temp_file_path);
+                               free(temp_file_path);
+                       }
+                       break;
+                       eina_list_free(row_vals);
+               }
+
+               if (media_type == tgl_message_media_none) {
+
+               } else if (media_type == tgl_message_media_photo) {
+
+                       long long media_id = atoll(media_id_str);
+                       long long access_hash = atoll(access_hash_str);
+
+                       struct tgl_photo* photo_prop = (struct tgl_photo*)malloc(sizeof(struct tgl_photo));
+                       photo_prop->id = media_id;
+                       photo_prop->access_hash = access_hash;
+                       photo_prop->user_id = user_id;
+                       photo_prop->date = date;
+                       photo_prop->caption = caption;
+                       photo_prop->geo.latitude = atof(latitude);
+                       photo_prop->geo.longitude = atof(longitude);
+                       photo_prop->sizes_num = sizes;
+
+                       photo_prop->sizes = talloc(sizeof(struct tgl_photo_size) * photo_prop->sizes_num);
+                       int i;
+                       for (i = 0; i < photo_prop->sizes_num; i++) {
+
+                               if (i == 0) {
+                                       photo_prop->sizes[i].w = photo_width1;
+                                       photo_prop->sizes[i].h = photo_height1;
+                                       photo_prop->sizes[i].size = photo_size1;
+                                       if(photo_data1) {
+                                               photo_prop->sizes[i].data = strdup(photo_data1);
+                                       }
+                                       if(photo_type1) {
+                                               photo_prop->sizes[i].type = strdup(photo_type1);
+                                       }
+                                       photo_prop->sizes[i].loc.dc = photo_loc_dc1;
+                                       photo_prop->sizes[i].loc.local_id = photo_loc_id1;
+                                       photo_prop->sizes[i].loc.secret = atoll(photo_loc_sec_str1);
+                                       photo_prop->sizes[i].loc.volume = atoll(photo_loc_vol_str1);
+                               } else if (i == 1) {
+
+                                       photo_prop->sizes[i].w = photo_width2;
+                                       photo_prop->sizes[i].h = photo_height2;
+                                       photo_prop->sizes[i].size = photo_size2;
+                                       if(photo_data2) {
+                                               photo_prop->sizes[i].data = strdup(photo_data2);
+                                       }
+                                       if(photo_type2) {
+                                               photo_prop->sizes[i].type = strdup(photo_type2);
+                                       }
+                                       photo_prop->sizes[i].loc.dc = photo_loc_dc2;
+                                       photo_prop->sizes[i].loc.local_id = photo_loc_id2;
+                                       photo_prop->sizes[i].loc.secret = atoll(photo_loc_sec_str2);
+                                       photo_prop->sizes[i].loc.volume = atoll(photo_loc_vol_str2);
+
+                               } else if (i == 2) {
+
+                                       photo_prop->sizes[i].w = photo_width3;
+                                       photo_prop->sizes[i].h = photo_height3;
+                                       photo_prop->sizes[i].size = photo_size3;
+                                       if(photo_data3) {
+                                               photo_prop->sizes[i].data = strdup(photo_data3);
+                                       }
+                                       if(photo_type3) {
+                                               photo_prop->sizes[i].type = strdup(photo_type3);
+                                       }
+                                       photo_prop->sizes[i].loc.dc = photo_loc_dc3;
+                                       photo_prop->sizes[i].loc.local_id = photo_loc_id3;
+                                       photo_prop->sizes[i].loc.secret = atoll(photo_loc_sec_str3);
+                                       photo_prop->sizes[i].loc.volume = atoll(photo_loc_vol_str3);
+
+                               } else if (i == 3) {
+
+                                       photo_prop->sizes[i].w = photo_width4;
+                                       photo_prop->sizes[i].h = photo_height4;
+                                       photo_prop->sizes[i].size = photo_size4;
+                                       if(photo_data4) {
+                                               photo_prop->sizes[i].data = strdup(photo_data4);
+                                       }
+                                       if(photo_type4) {
+                                               photo_prop->sizes[i].type = strdup(photo_type4);
+                                       }
+                                       photo_prop->sizes[i].loc.dc = photo_loc_dc4;
+                                       photo_prop->sizes[i].loc.local_id = photo_loc_id4;
+                                       photo_prop->sizes[i].loc.secret = atoll(photo_loc_sec_str4);
+                                       photo_prop->sizes[i].loc.volume = atoll(photo_loc_vol_str4);
+
+
+                               } else {
+
+                               }
+
+                       }
+
+                       tgl_do_load_photo(TLS, photo_prop ,&on_image_download_completed, photo_prop);
+
+               } else {
+
+               }
+       }
+#endif
+}
+
+
+void send_message_to_buddy(int buddy_id, int msg_type, char* msg_data, int type_of_chat)
+{
+       // get type of chat from buddy_id.
+       struct tgl_message msg;
+       msg.from_id.id = tg_data->id.id;
+
+       msg.date = 0;
+       msg.flags = 0;
+       msg.fwd_date = 0;
+       msg.fwd_from_id.id = 0;
+       msg.fwd_from_id.type = 0;
+       msg.id = 0;
+       msg.message = msg_data;
+       msg.message_len = strlen (msg_data);
+       msg.out = 0;
+       msg.service = 0;
+       msg.to_id.id = buddy_id;
+
+       msg.unread = 0;
+       msg.media.type = msg_type;
+
+#if 0
+       Eina_List* buddy_details_array = get_buddy_info(buddy_id);
+
+       if (buddy_details_array && eina_list_count(buddy_details_array) > 0) {
+               Eina_List* buddy_details = eina_list_nth(buddy_details_array, 0);
+               if (buddy_details && eina_list_count(buddy_details) > 0) {
+                       char* phone = eina_list_nth(buddy_details, 7);
+                       if (phone) {
+                               // get table name from phone number
+                               char* msg_table = get_table_name_from_number(phone);
+                               int t = time(NULL);
+                               insert_msg_into_db(&msg, msg_table, t);
+                               tgl_do_send_message(TLS, msg.to_id, msg_data, strlen (msg_data), &on_message_sent_to_buddy, (void*)(t));
+                               free(msg_table);
+                               free(phone);
+                               // buddy_details_array memory to be deleted
+                       }
+               }
+       }
+#else
+       char* msg_table = get_table_name_from_number(buddy_id);
+       int t = time(NULL);
+       insert_msg_into_db(&msg, msg_table, t);
+
+       if (type_of_chat == TGL_PEER_USER) {
+               msg.from_id.type = TGL_PEER_USER;
+               msg.to_id.type = TGL_PEER_USER;
+               tgl_do_send_message(TLS, msg.to_id, msg_data, strlen(msg_data), &on_message_sent_to_buddy, (void*)(t));
+       } else if (type_of_chat == TGL_PEER_CHAT) {
+               msg.from_id.type = TGL_PEER_CHAT;
+               msg.to_id.type = TGL_PEER_CHAT;
+               tgl_do_send_message(TLS, msg.to_id, msg_data, strlen(msg_data), &on_message_sent_to_buddy, (void*)(t));
+       } else if (type_of_chat == TGL_PEER_ENCR_CHAT) {
+
+       } else {
+
+       }
+
+       free(msg_table);
+#endif
+}
+
+
+void send_media_to_buddy(int buddy_id, int msg_type, char* file_path)
+{
+       int t = time(NULL);
+       struct tgl_message msg;
+       msg.from_id.id = tg_data->id.id;
+       msg.from_id.type = tg_data->id.type;
+       msg.date = 0;
+       msg.flags = 0;
+       msg.fwd_date = 0;
+       msg.fwd_from_id.id = 0;
+       msg.fwd_from_id.type = 0;
+       msg.id = 0;
+       msg.message = "";
+       msg.message_len = 0;
+       msg.out = 0;
+       msg.service = 0;
+       msg.to_id.id = buddy_id;
+       msg.to_id.type = tg_data->id.type;
+       msg.unread = 0;
+       msg.media.type = msg_type;
+       msg.media.photo.id = (long long)t;
+
+#if 0
+       Eina_List* buddy_details_array = get_buddy_info(buddy_id);
+
+       if (buddy_details_array && eina_list_count(buddy_details_array) > 0) {
+               Eina_List* buddy_details = eina_list_nth(buddy_details_array, 0);
+               if (buddy_details && eina_list_count(buddy_details) > 0) {
+                       char* phone = eina_list_nth(buddy_details, 7);
+                       if (phone) {
+                               // get table name from phone number
+                               char* msg_table = get_table_name_from_number(phone);
+
+                               insert_msg_into_db(&msg, msg_table, t);
+                               insert_media_info_to_db(&msg, file_path);
+                               tgl_do_send_document(TLS, -1, msg.to_id, file_path, &on_message_sent_to_buddy, (void*) (t));
+                               free(msg_table);
+                               free(phone);
+                       }
+               }
+       }
+#else
+       char* msg_table = get_table_name_from_number(buddy_id);
+       insert_msg_into_db(&msg, msg_table, t);
+       insert_media_info_to_db(&msg, file_path);
+       tgl_do_send_document(TLS, -1, msg.to_id, file_path, &on_message_sent_to_buddy, (void*) (t));
+       free(msg_table);
+#endif
+}
+
+static const char* _ui_utils_get_res_path()
+{
+       char res_folder_path[PATH_MAX] = {'\0'};
+       if (res_folder_path[0] == '\0') {
+               char *res_path_buff = app_get_resource_path();
+               strncpy(res_folder_path, res_path_buff, PATH_MAX-1);
+               free(res_path_buff);
+       }
+       return res_folder_path;
+}
+
+static char* ui_utils_get_resource(const char *res_name)
+{
+       static char res_path[PATH_MAX] = {'\0'};
+       snprintf(res_path, PATH_MAX, "%s%s", _ui_utils_get_res_path(), res_name);
+       return res_path;
+}
+
+void check_type_sizes(void)
+{
+       if (sizeof(int) != 4u) {
+               logprintf("sizeof(int) isn't equal 4.\n");
+               exit(1);
+       }
+       if (sizeof(char) != 1u) {
+               logprintf("sizeof(char) isn't equal 1.\n");
+               exit(1);
+       }
+}
+
+int str_empty(char *str)
+{
+       return((str == NULL) ||(strlen(str) < 1));
+}
+
+void parse_config(void)
+{
+       if (!disable_output) {
+               printf("libconfig not enabled\n");
+       }
+
+       char* rsa_path = ui_utils_get_resource(DEFAULT_RSA_FILE_NAME);
+       tasprintf(&rsa_file_name, "%s", rsa_path);
+       tasprintf(&config_full_path, "%s%s", DEFAULT_TELEGRAM_PATH, CONFIG_DIRECTORY);
+       struct stat st = {0};
+       if (stat(config_full_path, &st) == -1) {
+               mkdir(config_full_path, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
+       }
+
+       if (remove(rsa_file_name) == 0)
+               printf("File successfully deleted\n");
+
+       tasprintf(&downloads_directory, "%s%s/%s", DEFAULT_TELEGRAM_PATH, CONFIG_DIRECTORY, DOWNLOADS_DIRECTORY);
+
+       if (binlog_enabled) {
+               tasprintf(&binlog_file_name, "%s%s/%s", DEFAULT_TELEGRAM_PATH, CONFIG_DIRECTORY, BINLOG_FILE);
+               tgl_set_binlog_mode(TLS, 1);
+               tgl_set_binlog_path(TLS, binlog_file_name);
+       } else {
+               tgl_set_binlog_mode(TLS, 0);
+               //tgl_set_auth_file_path(auth_file_name;
+               tasprintf(&auth_file_name, "%s%s/%s", DEFAULT_TELEGRAM_PATH, CONFIG_DIRECTORY, AUTH_KEY_FILE);
+               tasprintf(&state_file_name, "%s%s/%s", DEFAULT_TELEGRAM_PATH, CONFIG_DIRECTORY, STATE_FILE);
+               tasprintf(&secret_chat_file_name, "%s%s/%s", DEFAULT_TELEGRAM_PATH, CONFIG_DIRECTORY, SECRET_CHAT_FILE);
+       }
+       tgl_set_download_directory(TLS, downloads_directory);
+       if (!mkdir(downloads_directory, CONFIG_DIRECTORY_MODE)) {
+               if (!disable_output) {
+                       printf("[%s] created\n", downloads_directory);
+               }
+       }
+}
+
+void running_for_first_time(void)
+{
+       check_type_sizes();
+       if (!str_empty(config_filename)) {
+               return; // Do not create custom config file
+       }
+
+       if (str_empty(config_directory)) {
+               config_directory = DEFAULT_TELEGRAM_PATH; // specific path for tizen application.
+       }
+
+       struct stat st = {0};
+       if (stat(config_directory, &st) == -1) {
+               mkdir(config_directory, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
+       }
+
+       tasprintf(&config_filename, "%s%s", config_directory, CONFIG_FILE);
+
+       int config_file_fd;
+       // see if config file is there
+       if (access(config_filename, R_OK) != 0) {
+               // config file missing, so touch it
+               config_file_fd = open(config_filename, O_CREAT | O_RDWR, 0600);
+               if (config_file_fd == -1)  {
+                       perror("open[config_file]");
+                       printf("I: config_file=[%s]\n", config_filename);
+                       exit(EXIT_FAILURE);
+               }
+               if (write(config_file_fd, DEFAULT_CONFIG_CONTENTS, strlen(DEFAULT_CONFIG_CONTENTS)) <= 0) {
+                       perror("write[config_file]");
+                       exit(EXIT_FAILURE);
+               }
+               close(config_file_fd);
+       }
+}
+
+void init_tl_engine()
+{
+       TLS = tgl_state_alloc();
+       running_for_first_time();
+       parse_config();
+       tgl_set_rsa_key(TLS, rsa_file_name);
+       tgl_set_callback(TLS, &upd_cb);
+       tgl_set_net_methods(TLS, &tgl_conn_methods);
+       tgl_set_timer_methods(TLS, &tgl_libevent_timers);
+       assert(TLS->timer_methods);
+       tgl_set_download_directory(TLS, get_downloads_directory());
+       tgl_register_app_id(TLS, TELEGRAM_CLI_APP_ID, TELEGRAM_CLI_APP_HASH);
+       tgl_set_app_version(TLS, "Telegram-cli " TELEGRAM_CLI_VERSION);
+       if (ipv6_enabled) {
+               tgl_enable_ipv6(TLS);
+       }
+       tgl_init(TLS);
+
+       if (binlog_enabled) {
+               double t = tglt_get_double_time();
+               if (verbosity >= E_DEBUG) {
+                       logprintf("replay log start\n");
+               }
+               tgl_replay_log(TLS);
+               if (verbosity >= E_DEBUG) {
+                       logprintf("replay log end in %lf seconds\n", tglt_get_double_time() - t);
+               }
+               tgl_reopen_binlog_for_writing(TLS);
+       } else {
+               read_auth_file();
+               read_state_file();
+               read_secret_chat_file();
+       }
+}
+
diff --git a/tg-engine-service/tg_engine/tg_engine.h b/tg-engine-service/tg_engine/tg_engine.h
new file mode 100644 (file)
index 0000000..b027959
--- /dev/null
@@ -0,0 +1,188 @@
+/*
+ * tg_engine.h
+ *
+ *  Created on: Jun 24, 2015
+ *      Author: sandeep
+ */
+
+#ifndef TG_ENGINE_H_
+#define TG_ENGINE_H_
+#include <app.h>
+#include <limits.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+#include <pwd.h>
+#include <termios.h>
+#include <unistd.h>
+#include <assert.h>
+#include <sys/stat.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+#include <time.h>
+#include <fcntl.h>
+#include <grp.h>
+#include <arpa/inet.h>
+#include <netinet/in.h>
+#include <tools.h>
+#ifdef USE_LUA
+#include "lua-tg.h"
+#endif
+#include "tgl.h"
+#include "tgl-net.h"
+#include "tgl-timers.h"
+#include "tgl-binlog.h"
+#include <openssl/sha.h>
+#include "tg_server.h"
+
+#include <Elementary.h>
+#include <efl_extension.h>
+#include "server_response.h"
+#include <net_connection.h>
+
+#define PROGNAME "telegram-tizen"
+#define VERSION "0.01"
+#define CONFIG_DIRECTORY ".telegram-tizen"
+#define CONFIG_FILE "config"
+#define AUTH_KEY_FILE "auth"
+#define STATE_FILE "state"
+#define SECRET_CHAT_FILE "secret"
+#define DOWNLOADS_DIRECTORY "downloads"
+#define BINLOG_FILE "binlog"
+#define RSA_KEY_FILE "tg-server.pub"
+#define DEFAULT_TELEGRAM_PATH "/opt/usr/media/telegram/"
+//#define DEFAULT_TELEGRAM_PATH "/opt/usr/apps/"PACKAGE"/"          /*app_get_data_path()*/
+//#define DEFAULT_TELEGRAM_PATH app_get_external_data_path()
+//#define DEFAULT_TG_DATABASE_PATH DEFAULT_TELEGRAM_PATH"tg_data_base.db"
+#define DEFAULT_TG_DATABASE_PATH "/opt/usr/media/telegram/tg_data_base.db"
+#define TELEGRAM_CLI_VERSION "1.0.0"
+#define CONFIG_DIRECTORY_MODE 0700
+#define DEFAULT_RSA_FILE_NAME "server.pub"
+#define TELEGRAM_CLI_APP_HASH "8b5082937b2eb8814559291b93caa8a5"
+#define TELEGRAM_CLI_APP_ID 26793
+
+#ifndef PATH_MAX
+#define PATH_MAX 4096
+#endif
+
+#define DEFAULT_CONFIG_CONTENTS     \
+  "# This is an empty config file\n" \
+  "# Feel free to put something here\n"
+
+int verbosity;
+int msg_num_mode;
+char *default_username;
+char *config_filename;
+char *prefix;
+char *auth_file_name;
+char *state_file_name;
+char *secret_chat_file_name;
+char *downloads_directory;
+char *config_directory;
+char *binlog_file_name;
+char *lua_file;
+int binlog_enabled;
+extern int log_level;
+int sync_from_start;
+int allow_weak_random;
+int disable_colors;
+int readline_disabled;
+int disable_output;
+int reset_authorization;
+int port;
+int use_ids;
+int ipv6_enabled;
+char *start_command;
+char *rsa_file_name;
+char *config_full_path;
+int need_dc_list_update;
+struct tgl_state *TLS;
+
+extern void logprintf (const char *format, ...) __attribute__ ((format (printf, 1, 2)));
+extern void check_type_sizes(void);
+extern int str_empty(char *str);
+extern void parse_config(void);
+extern void running_for_first_time(void);
+extern void init_tl_engine();
+extern void write_auth_file(void);
+
+static char* get_config_filename(void)
+{
+  return config_filename;
+}
+
+static char* get_auth_key_filename(void)
+{
+  return auth_file_name;
+}
+
+static char* get_state_filename(void)
+{
+  return state_file_name;
+}
+
+static char* get_secret_chat_filename (void) {
+  return secret_chat_file_name;
+}
+
+static char* get_downloads_directory (void) {
+  return downloads_directory;
+}
+
+static char* get_binlog_file_name(void)
+{
+  return binlog_file_name;
+}
+
+extern void on_user_info_loaded(struct tgl_state *TLSR, void *extra, int success, struct tgl_user *U);
+
+typedef enum TG_ENGINE_STATE {
+       TG_ENGINE_STATE_INITIALIZING,
+       TG_ENGINE_STATE_REGISTRATION,
+       TG_ENGINE_STATE_PROFILE_REGISTRATION,
+       TG_ENGINE_STATE_PROFILE_FIRST_NAME_REGISTRATION,
+       TG_ENGINE_STATE_PROFILE_LAST_NAME_REGISTRATION,
+       TG_ENGINE_STATE_CODE_REQUEST
+} tg_engine_state;
+
+typedef struct tg_engine_data {
+       tgl_peer_id_t id;
+       char* phone_number;
+       char* sms_code;
+       char* first_name;
+       char* last_name;
+       tg_server* tg_server;
+       tg_engine_state tg_state;
+       void(*get_string)(struct tgl_state *TLS, char *string, void *arg);
+       void* callback_arg;
+       Eina_Bool is_first_time_registration;
+       Eina_List* contact_list_to_add;
+       int current_index;
+       Eina_Bool is_network_connected;
+       Eina_Bool is_login_activated;
+       connection_h connection;
+       Eina_Bool is_group_creation_requested;
+       char* new_group_icon;
+} tg_engine_data_s;
+
+tg_engine_data_s* tg_data;
+
+
+typedef struct contact_data {
+       int contact_id;
+       char* display_name;
+       char* first_name;
+       char* last_name;
+       char* phone_number;
+} contact_data_s;
+
+
+void send_message_to_buddy(int buddy_id, int msg_type, char* msg_data, int type_of_chat);
+void send_media_to_buddy(int buddy_id, int msg_type, char* file_path);
+
+void media_download_request(int buddy_id, long long media_id);
+void add_contacts_to_user(int size, Eina_List* contact_list);
+void create_new_group(Eina_List* buddy_ids, const char* group_name, const char* group_icon);
+
+#endif /* TG_ENGINE_H_ */
diff --git a/tg-engine-service/tg_engine_utils/tg_common.h b/tg-engine-service/tg_engine_utils/tg_common.h
new file mode 100644 (file)
index 0000000..f0b9658
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * tg_common.h
+ *
+ *  Created on: May 19, 2015
+ *      Author: sandeep
+ */
+
+#ifndef TG_COMMON_H_
+#define TG_COMMON_H_
+
+
+#include <Elementary.h>
+
+#define DEFAULT_TELEGRAM_PATH "/opt/usr/media/telegram/"
+#define DEFAULT_TG_DATABASE_PATH "/opt/usr/media/telegram/tg_data_base.db"
+
+//static char* get_table_name_from_number(const char* phone_no)
+static char* get_table_name_from_number(const int id)
+{
+       char id_str[50];
+       sprintf(id_str, "%d", id);
+       char* msg_table = (char*)malloc(strlen("tg_") + strlen(id_str) + strlen("_msg") + 1);
+       strcpy(msg_table, "tg_");
+       strcat(msg_table, id_str);
+       strcat(msg_table, "_msg");
+       return msg_table;
+}
+
+#endif /* TG_COMMON_H_ */
diff --git a/tg-engine-service/tizen-manifest.xml b/tg-engine-service/tizen-manifest.xml
new file mode 100644 (file)
index 0000000..dc79187
--- /dev/null
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="2.3" package="org.tizen.tg-engine-service" version="1.0.0">
+    <profile name="mobile"/>
+    <service-application appid="org.tizen.tg-engine-service" exec="tg-engine-service" multiple="false" nodisplay="true" type="capp">
+        <label>tg-engine-service</label>
+        <icon>tg-engine-service.png</icon>
+        <background-category value="background-network"/>
+        <background-category value="download"/>
+        <background-category value="iot-communication"/>
+        <background-category value="location"/>
+        <background-category value="media"/>
+        <background-category value="sensor"/>
+    </service-application>
+    <privileges>
+        <privilege>http://tizen.org/privilege/location</privilege>
+        <privilege>http://tizen.org/privilege/network.get</privilege>
+        <privilege>http://tizen.org/privilege/keymanager</privilege>
+        <privilege>http://tizen.org/privilege/camera</privilege>
+        <privilege>http://tizen.org/privilege/contact.write</privilege>
+        <privilege>http://tizen.org/privilege/appmanager.launch</privilege>
+        <privilege>http://tizen.org/privilege/content.write</privilege>
+        <privilege>http://tizen.org/privilege/push</privilege>
+        <privilege>http://tizen.org/privilege/network.profile</privilege>
+        <privilege>http://tizen.org/privilege/display</privilege>
+        <privilege>http://tizen.org/privilege/account.read</privilege>
+        <privilege>http://tizen.org/privilege/externalstorage</privilege>
+        <privilege>http://tizen.org/privilege/recorder</privilege>
+        <privilege>http://tizen.org/privilege/account.write</privilege>
+        <privilege>http://tizen.org/privilege/bluetooth</privilege>
+        <privilege>http://tizen.org/privilege/mediastorage</privilege>
+        <privilege>http://tizen.org/privilege/internet</privilege>
+        <privilege>http://tizen.org/privilege/network.set</privilege>
+        <privilege>http://tizen.org/privilege/notification</privilege>
+        <privilege>http://tizen.org/privilege/externalstorage.appdata</privilege>
+        <privilege>http://tizen.org/privilege/contact.read</privilege>
+    </privileges>
+</manifest>